Eigensolver decomposition interface unification.

Added default ctor and public compute method as
well as safe-guards against uninitialized usage.
Added unit tests for the safe-guards.
This commit is contained in:
Hauke Heibel
2009-05-22 14:27:58 +02:00
parent 7435d5c079
commit 0523b64fe9
2 changed files with 41 additions and 4 deletions

View File

@@ -61,6 +61,17 @@ template<typename MatrixType> void eigensolver(const MatrixType& m)
}
template<typename MatrixType> void eigensolver_verify_assert()
{
MatrixType tmp;
EigenSolver<MatrixType> eig;
VERIFY_RAISES_ASSERT(eig.eigenvectors())
VERIFY_RAISES_ASSERT(eig.pseudoEigenvectors())
VERIFY_RAISES_ASSERT(eig.pseudoEigenvalueMatrix())
VERIFY_RAISES_ASSERT(eig.eigenvalues())
}
void test_eigensolver_generic()
{
for(int i = 0; i < g_repeat; i++) {
@@ -73,5 +84,9 @@ void test_eigensolver_generic()
CALL_SUBTEST( eigensolver(Matrix<double,1,1>()) );
CALL_SUBTEST( eigensolver(Matrix<double,2,2>()) );
}
}
CALL_SUBTEST( eigensolver_verify_assert<Matrix3f>() );
CALL_SUBTEST( eigensolver_verify_assert<Matrix3d>() );
CALL_SUBTEST( eigensolver_verify_assert<MatrixXf>() );
CALL_SUBTEST( eigensolver_verify_assert<MatrixXd>() );
}