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(NOT WIN32)
add_definitions( -DEIGEN_MATRIXDIR="${TEST_REAL_CASES}" )
add_definitions( -DTEST_REAL_CASES="${TEST_REAL_CASES}" )
else(NOT WIN32)
message(STATUS, "REAL CASES CAN NOT BE CURRENTLY TESTED ON WIN32")
endif(NOT WIN32)
@ -200,7 +200,6 @@ ei_add_test(vectorwiseop)
ei_add_test(simplicial_cholesky)
ei_add_test(conjugate_gradient)
ei_add_test(bicgstab)
ei_add_test(gmres)
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>()));
}
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>
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;
}
#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)
{
typedef typename Solver::MatrixType Mat;
@ -199,7 +202,7 @@ template<typename Solver> void check_sparse_spd_solving(Solver& solver)
}
// First, get the folder
#ifdef EIGEN_MATRIXDIR
#ifdef TEST_REAL_CASES
if (internal::is_same<Scalar, float>::value
|| internal::is_same<Scalar, std::complex<float> >::value)
return ;
@ -278,7 +281,7 @@ template<typename Solver> void check_sparse_square_solving(Solver& solver)
}
// First, get the folder
#ifdef EIGEN_MATRIXDIR
#ifdef TEST_REAL_CASES
if (internal::is_same<Scalar, float>::value
|| internal::is_same<Scalar, std::complex<float> >::value)
return ;