From 791e28f25d75941a6e0fc317464cbb52cb312944 Mon Sep 17 00:00:00 2001 From: Gael Guennebaud Date: Mon, 18 Jun 2012 21:32:56 +0200 Subject: update adolc support wrt "new" NumTraits mechanism --- unsupported/Eigen/AdolcForward | 29 +++++++++-------------------- 1 file changed, 9 insertions(+), 20 deletions(-) (limited to 'unsupported/Eigen/AdolcForward') diff --git a/unsupported/Eigen/AdolcForward b/unsupported/Eigen/AdolcForward index 6c0a68d67..477c75378 100644 --- a/unsupported/Eigen/AdolcForward +++ b/unsupported/Eigen/AdolcForward @@ -79,33 +79,22 @@ namespace Eigen { } // namespace Eigen -// the Adolc's type adouble is defined in the adtl namespace -// therefore, the following internal::* functions *must* be defined -// in the same namespace -namespace Eigen { - - namespace internal { - - inline const adtl::adouble& conj(const adtl::adouble& x) { return x; } - inline const adtl::adouble& real(const adtl::adouble& x) { return x; } - inline adtl::adouble imag(const adtl::adouble&) { return 0.; } - inline adtl::adouble abs(const adtl::adouble& x) { return adtl::fabs(x); } - inline adtl::adouble abs2(const adtl::adouble& x) { return x*x; } - - using adtl::sqrt; - using adtl::exp; - using adtl::log; - using adtl::sin; - using adtl::cos; - using adtl::pow; +// Eigen's require a few additional functions which must be defined in the same namespace +// than the custom scalar type own namespace +namespace adtl { - } +inline const adouble& conj(const adouble& x) { return x; } +inline const adouble& real(const adouble& x) { return x; } +inline adouble imag(const adouble&) { return 0.; } +inline adouble abs(const adouble& x) { return fabs(x); } +inline adouble abs2(const adouble& x) { return x*x; } } namespace Eigen { template<> struct NumTraits + : NumTraits { typedef adtl::adouble Real; typedef adtl::adouble NonInteger; -- cgit v1.2.3