* remove a ctor in QuaternionBase as it gives a strange error with GCC 4.4.2.
This commit is contained in:
Benoit Jacob
2009-11-09 09:08:03 -05:00
32 changed files with 1055 additions and 710 deletions

View File

@@ -49,6 +49,10 @@ template<typename MatrixType> void eigensolver(const MatrixType& m)
ComplexEigenSolver<MatrixType> ei1(a);
VERIFY_IS_APPROX(a * ei1.eigenvectors(), ei1.eigenvectors() * ei1.eigenvalues().asDiagonal());
// Regression test for issue #66
MatrixType z = MatrixType::Zero(rows,cols);
ComplexEigenSolver<MatrixType> eiz(z);
VERIFY((eiz.eigenvalues().cwise()==0).all());
}
void test_eigensolver_complex()
@@ -58,4 +62,3 @@ void test_eigensolver_complex()
CALL_SUBTEST_2( eigensolver(MatrixXcd(14,14)) );
}
}

View File

@@ -109,7 +109,7 @@ template<typename Scalar> void sparse_solvers(int rows, int cols)
initSPD(density, refMat2, m2);
refMat2.llt().solve(b, &refX);
refX = refMat2.llt().solve(b);
typedef SparseMatrix<Scalar,LowerTriangular|SelfAdjoint> SparseSelfAdjointMatrix;
if (!NumTraits<Scalar>::IsComplex)
{
@@ -152,7 +152,7 @@ template<typename Scalar> void sparse_solvers(int rows, int cols)
refMat2 += refMat2.adjoint();
refMat2.diagonal() *= 0.5;
refMat2.llt().solve(b, &refX); // FIXME use LLT to compute the reference because LDLT seems to fail with large matrices
refX = refMat2.llt().solve(b); // FIXME use LLT to compute the reference because LDLT seems to fail with large matrices
typedef SparseMatrix<Scalar,UpperTriangular|SelfAdjoint> SparseSelfAdjointMatrix;
x = b;
SparseLDLT<SparseSelfAdjointMatrix> ldlt(m2);