mirror of
https://gitlab.com/libeigen/eigen.git
synced 2025-05-20 16:47:37 +08:00
fix bad fuzzy comparison in 3x3 tridiagonalization
This commit is contained in:
parent
044424b0e2
commit
6ab9e8632f
@ -458,7 +458,7 @@ struct ei_tridiagonalization_inplace_selector
|
||||
};
|
||||
|
||||
/** \internal
|
||||
* Specialization for 3x3 matrices.
|
||||
* Specialization for 3x3 real matrices.
|
||||
* Especially useful for plane fitting.
|
||||
*/
|
||||
template<typename MatrixType>
|
||||
@ -472,7 +472,7 @@ struct ei_tridiagonalization_inplace_selector<MatrixType,3>
|
||||
{
|
||||
diag[0] = ei_real(mat(0,0));
|
||||
RealScalar v1norm2 = ei_abs2(mat(2,0));
|
||||
if (ei_isMuchSmallerThan(v1norm2, RealScalar(1)))
|
||||
if(v1norm2 == RealScalar(0) && ei_imag(mat(1,0))==RealScalar(0))
|
||||
{
|
||||
diag[1] = ei_real(mat(1,1));
|
||||
diag[2] = ei_real(mat(2,2));
|
||||
|
Loading…
x
Reference in New Issue
Block a user