Hi,
checking that "eigensolverH.info() == Eigen::Success" indicates that the solver failed. That explains why their are not sorted.
Adding:
namespace Eigen {
template<> struct NumTraits<TpFloat> : GenericNumTraits<TpFloat> {
static inline TpFloat dummy_precision() { return sqrt(std::numeric_limits<TpFloat>::epsilon()); }
};
}
fixes the issue, and then the boost version is faster. I'll check why dummy_precision is needed for that task, that should not be case as dummy_precision should only be used for unit testing and debugging purposes, not within numerical algorithms!
gael