diff options
author | Benoit Steiner <benoit.steiner.goog@gmail.com> | 2015-12-10 13:09:49 -0800 |
---|---|---|
committer | Benoit Steiner <benoit.steiner.goog@gmail.com> | 2015-12-10 13:09:49 -0800 |
commit | 48877a69334382b8478f5095c5e56500b7de7478 (patch) | |
tree | 9d16a070febcd4a4005671404c1ebdb386a107c3 /Eigen/src | |
parent | 53b196aa5fb503ab3707887eea226eec56943380 (diff) |
Only implement the lgamma, erf, and erfc functions when using a compiler compliant with the C99 specification.
Diffstat (limited to 'Eigen/src')
-rw-r--r-- | Eigen/src/Core/SpecialFunctions.h | 43 |
1 files changed, 25 insertions, 18 deletions
diff --git a/Eigen/src/Core/SpecialFunctions.h b/Eigen/src/Core/SpecialFunctions.h index f90f1b81b..1de3d7f78 100644 --- a/Eigen/src/Core/SpecialFunctions.h +++ b/Eigen/src/Core/SpecialFunctions.h @@ -28,6 +28,13 @@ struct lgamma_impl } }; +template<typename Scalar> +struct lgamma_retval +{ + typedef Scalar type; +}; + +#ifdef EIGEN_HAS_C99_MATH template<> struct lgamma_impl<float> { @@ -41,12 +48,7 @@ struct lgamma_impl<double> EIGEN_DEVICE_FUNC static EIGEN_STRONG_INLINE double run(const double& x) { return ::lgamma(x); } }; - -template<typename Scalar> -struct lgamma_retval -{ - typedef Scalar type; -}; +#endif /**************************************************************************** * Implementation of erf * @@ -63,6 +65,13 @@ struct erf_impl } }; +template<typename Scalar> +struct erf_retval +{ + typedef Scalar type; +}; + +#ifdef EIGEN_HAS_C99_MATH template<> struct erf_impl<float> { @@ -76,12 +85,7 @@ struct erf_impl<double> EIGEN_DEVICE_FUNC static EIGEN_STRONG_INLINE double run(const double& x) { return ::erf(x); } }; - -template<typename Scalar> -struct erf_retval -{ - typedef Scalar type; -}; +#endif // EIGEN_HAS_C99_MATH /*************************************************************************** * Implementation of erfc * @@ -98,6 +102,13 @@ struct erfc_impl } }; +template<typename Scalar> +struct erfc_retval +{ + typedef Scalar type; +}; + +#ifdef EIGEN_HAS_C99_MATH template<> struct erfc_impl<float> { @@ -111,15 +122,11 @@ struct erfc_impl<double> EIGEN_DEVICE_FUNC static EIGEN_STRONG_INLINE double run(const double x) { return ::erfc(x); } }; - -template<typename Scalar> -struct erfc_retval -{ - typedef Scalar type; -}; +#endif // EIGEN_HAS_C99_MATH } // end namespace internal + namespace numext { template<typename Scalar> |