Re: [eigen] 3x3 symmetric eigenvalues Problem

[ Thread Index | Date Index | More lists.tuxfamily.org/eigen Archives ]


I got it: it is the default value for significantSquaredNorm2 that is
too high for that case.
The matrix is normalized therefore, the matrix that is actually investigated is:
diag( 1, 5e-4, 0 )
Now the squared norm of the cross product between col(0) and col(1) is
lower than Eigen::NumTraits<typename
Matrix::Scalar>::dummy_precision() hence the matrix is considered as
equivalent to diag(1,0,0) and the result is correct from that point of
view.
If you change the default value for significantNorm2 to
Eigen::NumTraits<typename
Matrix::Scalar>::dummy_precision()*Eigen::NumTraits<typename
Matrix::Scalar>::dummy_precision()
it is ok.
There is another problem now for almost isotropic matrices:
the precision_for_isotropic_case set to dummy_precision is too large
for those matrices (I did not realize that before, hmppffff)
If I change the line
if( Q < Scalar(0) ) to if( Q <= Scalar(0) )
in the code computing the roots of the polynomial
everything is ok for those matrices
however I think a better criterion is needed here but I have to make
some calculations and tests which will wait until this week-end.


- best regards,

Manuel



Mail converted by MHonArc 2.6.19+ http://listengine.tuxfamily.org/