Correct a small bug in sparse_solver

This commit is contained in:
Desire NUENTSA 2012-03-29 14:53:42 +02:00
parent f804a319c8
commit f776c061a1
2 changed files with 17 additions and 15 deletions

View File

@ -20,7 +20,7 @@ set(LAPACK_LIBRARIES eigen_lapack)
if(TEST_REAL_CASES) if(TEST_REAL_CASES)
if(NOT WIN32) if(NOT WIN32)
add_definitions( -DEIGEN_MATRIXDIR="${TEST_REAL_CASES}" ) add_definitions( -DTEST_REAL_CASES="${TEST_REAL_CASES}" )
else(NOT WIN32) else(NOT WIN32)
message(STATUS, "REAL CASES CAN NOT BE CURRENTLY TESTED ON WIN32") message(STATUS, "REAL CASES CAN NOT BE CURRENTLY TESTED ON WIN32")
endif(NOT WIN32) endif(NOT WIN32)
@ -200,7 +200,6 @@ ei_add_test(vectorwiseop)
ei_add_test(simplicial_cholesky) ei_add_test(simplicial_cholesky)
ei_add_test(conjugate_gradient) ei_add_test(conjugate_gradient)
ei_add_test(bicgstab) ei_add_test(bicgstab)
ei_add_test(gmres)
if(UMFPACK_FOUND) if(UMFPACK_FOUND)

View File

@ -74,17 +74,6 @@ void check_sparse_solving(Solver& solver, const typename Solver::MatrixType& A,
VERIFY(x.isApprox(refX,test_precision<Scalar>())); VERIFY(x.isApprox(refX,test_precision<Scalar>()));
} }
template<typename Scalar>
inline std::string get_matrixfolder()
{
std::string mat_folder = EIGEN_MATRIXDIR;
if( internal::is_same<Scalar, std::complex<float> >::value || internal::is_same<Scalar, std::complex<double> >::value )
mat_folder = mat_folder + static_cast<string>("/complex/");
else
mat_folder = mat_folder + static_cast<string>("/real/");
return mat_folder;
}
template<typename Solver, typename Rhs> template<typename Solver, typename Rhs>
void check_sparse_solving_real_cases(Solver& solver, const typename Solver::MatrixType& A, const Rhs& b, const Rhs& refX) void check_sparse_solving_real_cases(Solver& solver, const typename Solver::MatrixType& A, const Rhs& b, const Rhs& refX)
{ {
@ -167,6 +156,20 @@ int generate_sparse_spd_problem(Solver& , typename Solver::MatrixType& A, typena
return size; return size;
} }
#ifdef TEST_REAL_CASES
template<typename Scalar>
inline std::string get_matrixfolder()
{
std::string mat_folder = TEST_REAL_CASES;
if( internal::is_same<Scalar, std::complex<float> >::value || internal::is_same<Scalar, std::complex<double> >::value )
mat_folder = mat_folder + static_cast<string>("/complex/");
else
mat_folder = mat_folder + static_cast<string>("/real/");
return mat_folder;
}
#endif
template<typename Solver> void check_sparse_spd_solving(Solver& solver) template<typename Solver> void check_sparse_spd_solving(Solver& solver)
{ {
typedef typename Solver::MatrixType Mat; typedef typename Solver::MatrixType Mat;
@ -199,7 +202,7 @@ template<typename Solver> void check_sparse_spd_solving(Solver& solver)
} }
// First, get the folder // First, get the folder
#ifdef EIGEN_MATRIXDIR #ifdef TEST_REAL_CASES
if (internal::is_same<Scalar, float>::value if (internal::is_same<Scalar, float>::value
|| internal::is_same<Scalar, std::complex<float> >::value) || internal::is_same<Scalar, std::complex<float> >::value)
return ; return ;
@ -278,7 +281,7 @@ template<typename Solver> void check_sparse_square_solving(Solver& solver)
} }
// First, get the folder // First, get the folder
#ifdef EIGEN_MATRIXDIR #ifdef TEST_REAL_CASES
if (internal::is_same<Scalar, float>::value if (internal::is_same<Scalar, float>::value
|| internal::is_same<Scalar, std::complex<float> >::value) || internal::is_same<Scalar, std::complex<float> >::value)
return ; return ;