Open rolanddenis opened 7 years ago
Looks ok with the last boost 1.75. Should we keep this issue open?
Still fails on my side with GCC 10.2.0, Eigen 3.3.9 and Boost 1.75.0 ... Does it work on your side ?
Ok so the problem does not come from boost 1.75 itself, maybe a combo GCC10+boost1.75. (clang+boost1.75 is fine).
Fails also with LLVM 10.0.0, Boost 1.75.0 and Eigen 3.3.9 (Ubuntu), strange...
I cannot test on Boost 1.58.0 anymore but looking at code of DiscreteExteriorCalcul
shows that it depends on Boost for boost::array
and boost::unordered_map
. Naively replacing boost::unordered_map
by std::map
to define myProperties
leads to another, but still invalid, result. Using std::unordered_map
leads to a correct result for this specific comparison but another one fails just after.
It behaves like something is implementation dependent...
In DiscreteExteriorCalculus::updateIndexes
, index associated to each cell depends on the read order of myCellProperties
.
In DiscreteExteriorCalculus::derivative
, this index is used as column index to fill the resulting sparse array, thus invalidating comparison in testLinearStructure
with hard coded expected result.
When compiling
testLinearStructure
using Boost version1.63.0
or1.64.0
, it fails with the following message:The related code https://github.com/DGtal-team/DGtal/blob/master/tests/dec/testLinearStructure.cpp#L391 suggests that the primal 0-form should instead be:
It is indeed the case when using Boost
1.58.0
.Tested with GNU
5.4.1
,6.2.0
and7.1.1
, with Eigen3.3.3
and3.3.4
.