From 96f08213f7a837908caafe197cb8a3e2eb277622 Mon Sep 17 00:00:00 2001 From: Benoit Jacob Date: Wed, 19 Jan 2011 11:01:07 -0500 Subject: big eigen2support fix, aimed at users who relied on internal eigen2 stuff: now we dont need customizations in test/eigen2/main.h anymore. These tests already build: eigen2_basicstuff eigen2_adjoint eigen2_linearstructure eigen2_prec_inverse_4x4 --- test/eigen2/main.h | 99 +++++++++++++++++++++++++++--------------------------- 1 file changed, 50 insertions(+), 49 deletions(-) (limited to 'test/eigen2/main.h') diff --git a/test/eigen2/main.h b/test/eigen2/main.h index d919ee91a..65d56377a 100644 --- a/test/eigen2/main.h +++ b/test/eigen2/main.h @@ -110,6 +110,7 @@ namespace Eigen #else // EIGEN_DEBUG_ASSERTS + #undef ei_asset #define ei_assert(a) \ if( (!(a)) && (!no_more_assert) ) \ { \ @@ -145,12 +146,12 @@ namespace Eigen std::exit(2); \ } } while (0) -#define VERIFY_IS_APPROX(a, b) VERIFY(test_isApprox(a, b)) -#define VERIFY_IS_NOT_APPROX(a, b) VERIFY(!test_isApprox(a, b)) -#define VERIFY_IS_MUCH_SMALLER_THAN(a, b) VERIFY(test_isMuchSmallerThan(a, b)) -#define VERIFY_IS_NOT_MUCH_SMALLER_THAN(a, b) VERIFY(!test_isMuchSmallerThan(a, b)) -#define VERIFY_IS_APPROX_OR_LESS_THAN(a, b) VERIFY(test_isApproxOrLessThan(a, b)) -#define VERIFY_IS_NOT_APPROX_OR_LESS_THAN(a, b) VERIFY(!test_isApproxOrLessThan(a, b)) +#define VERIFY_IS_APPROX(a, b) VERIFY(test_ei_isApprox(a, b)) +#define VERIFY_IS_NOT_APPROX(a, b) VERIFY(!test_ei_isApprox(a, b)) +#define VERIFY_IS_MUCH_SMALLER_THAN(a, b) VERIFY(test_ei_isMuchSmallerThan(a, b)) +#define VERIFY_IS_NOT_MUCH_SMALLER_THAN(a, b) VERIFY(!test_ei_isMuchSmallerThan(a, b)) +#define VERIFY_IS_APPROX_OR_LESS_THAN(a, b) VERIFY(test_ei_isApproxOrLessThan(a, b)) +#define VERIFY_IS_NOT_APPROX_OR_LESS_THAN(a, b) VERIFY(!test_ei_isApproxOrLessThan(a, b)) #define CALL_SUBTEST(FUNC) do { \ g_test_stack.push_back(EI_PP_MAKE_STRING(FUNC)); \ @@ -168,62 +169,62 @@ template<> inline float test_precision >() { return test_pre template<> inline double test_precision >() { return test_precision(); } template<> inline long double test_precision() { return 1e-6; } -inline bool test_isApprox(const int& a, const int& b) -{ return internal::isApprox(a, b, test_precision()); } -inline bool test_isMuchSmallerThan(const int& a, const int& b) -{ return internal::isMuchSmallerThan(a, b, test_precision()); } -inline bool test_isApproxOrLessThan(const int& a, const int& b) -{ return internal::isApproxOrLessThan(a, b, test_precision()); } - -inline bool test_isApprox(const float& a, const float& b) -{ return internal::isApprox(a, b, test_precision()); } -inline bool test_isMuchSmallerThan(const float& a, const float& b) -{ return internal::isMuchSmallerThan(a, b, test_precision()); } -inline bool test_isApproxOrLessThan(const float& a, const float& b) -{ return internal::isApproxOrLessThan(a, b, test_precision()); } - -inline bool test_isApprox(const double& a, const double& b) -{ return internal::isApprox(a, b, test_precision()); } -inline bool test_isMuchSmallerThan(const double& a, const double& b) -{ return internal::isMuchSmallerThan(a, b, test_precision()); } -inline bool test_isApproxOrLessThan(const double& a, const double& b) -{ return internal::isApproxOrLessThan(a, b, test_precision()); } - -inline bool test_isApprox(const std::complex& a, const std::complex& b) -{ return internal::isApprox(a, b, test_precision >()); } -inline bool test_isMuchSmallerThan(const std::complex& a, const std::complex& b) -{ return internal::isMuchSmallerThan(a, b, test_precision >()); } - -inline bool test_isApprox(const std::complex& a, const std::complex& b) -{ return internal::isApprox(a, b, test_precision >()); } -inline bool test_isMuchSmallerThan(const std::complex& a, const std::complex& b) -{ return internal::isMuchSmallerThan(a, b, test_precision >()); } - -inline bool test_isApprox(const long double& a, const long double& b) -{ return internal::isApprox(a, b, test_precision()); } -inline bool test_isMuchSmallerThan(const long double& a, const long double& b) -{ return internal::isMuchSmallerThan(a, b, test_precision()); } -inline bool test_isApproxOrLessThan(const long double& a, const long double& b) -{ return internal::isApproxOrLessThan(a, b, test_precision()); } +inline bool test_ei_isApprox(const int& a, const int& b) +{ return ei_isApprox(a, b, test_precision()); } +inline bool test_ei_isMuchSmallerThan(const int& a, const int& b) +{ return ei_isMuchSmallerThan(a, b, test_precision()); } +inline bool test_ei_isApproxOrLessThan(const int& a, const int& b) +{ return ei_isApproxOrLessThan(a, b, test_precision()); } + +inline bool test_ei_isApprox(const float& a, const float& b) +{ return ei_isApprox(a, b, test_precision()); } +inline bool test_ei_isMuchSmallerThan(const float& a, const float& b) +{ return ei_isMuchSmallerThan(a, b, test_precision()); } +inline bool test_ei_isApproxOrLessThan(const float& a, const float& b) +{ return ei_isApproxOrLessThan(a, b, test_precision()); } + +inline bool test_ei_isApprox(const double& a, const double& b) +{ return ei_isApprox(a, b, test_precision()); } +inline bool test_ei_isMuchSmallerThan(const double& a, const double& b) +{ return ei_isMuchSmallerThan(a, b, test_precision()); } +inline bool test_ei_isApproxOrLessThan(const double& a, const double& b) +{ return ei_isApproxOrLessThan(a, b, test_precision()); } + +inline bool test_ei_isApprox(const std::complex& a, const std::complex& b) +{ return ei_isApprox(a, b, test_precision >()); } +inline bool test_ei_isMuchSmallerThan(const std::complex& a, const std::complex& b) +{ return ei_isMuchSmallerThan(a, b, test_precision >()); } + +inline bool test_ei_isApprox(const std::complex& a, const std::complex& b) +{ return ei_isApprox(a, b, test_precision >()); } +inline bool test_ei_isMuchSmallerThan(const std::complex& a, const std::complex& b) +{ return ei_isMuchSmallerThan(a, b, test_precision >()); } + +inline bool test_ei_isApprox(const long double& a, const long double& b) +{ return ei_isApprox(a, b, test_precision()); } +inline bool test_ei_isMuchSmallerThan(const long double& a, const long double& b) +{ return ei_isMuchSmallerThan(a, b, test_precision()); } +inline bool test_ei_isApproxOrLessThan(const long double& a, const long double& b) +{ return ei_isApproxOrLessThan(a, b, test_precision()); } template -inline bool test_isApprox(const Type1& a, const Type2& b) +inline bool test_ei_isApprox(const Type1& a, const Type2& b) { return a.isApprox(b, test_precision()); } template -inline bool test_isMuchSmallerThan(const MatrixBase& m1, +inline bool test_ei_isMuchSmallerThan(const MatrixBase& m1, const MatrixBase& m2) { - return m1.isMuchSmallerThan(m2, test_precision::Scalar>()); + return m1.isMuchSmallerThan(m2, test_precision::Scalar>()); } template -inline bool test_isMuchSmallerThan(const MatrixBase& m, - const typename NumTraits::Scalar>::Real& s) +inline bool test_ei_isMuchSmallerThan(const MatrixBase& m, + const typename NumTraits::Scalar>::Real& s) { - return m.isMuchSmallerThan(s, test_precision::Scalar>()); + return m.isMuchSmallerThan(s, test_precision::Scalar>()); } } // end namespace Eigen -- cgit v1.2.3