10#ifndef EIGEN_SPECIAL_FUNCTIONS_H
11#define EIGEN_SPECIAL_FUNCTIONS_H
20template<
typename Scalar>
24 static EIGEN_STRONG_INLINE Scalar run(
const Scalar&)
27 THIS_TYPE_IS_NOT_SUPPORTED);
32template<
typename Scalar>
38#ifdef EIGEN_HAS_C99_MATH
43 static EIGEN_STRONG_INLINE
double run(
const float& x) { return ::lgammaf(x); }
47struct lgamma_impl<double>
50 static EIGEN_STRONG_INLINE
double run(
const double& x) { return ::lgamma(x); }
58template<
typename Scalar>
62 static EIGEN_STRONG_INLINE Scalar run(
const Scalar&)
65 THIS_TYPE_IS_NOT_SUPPORTED);
70template<
typename Scalar>
76#ifdef EIGEN_HAS_C99_MATH
81 static EIGEN_STRONG_INLINE
float run(
const float& x) { return ::erff(x); }
85struct erf_impl<double>
88 static EIGEN_STRONG_INLINE
double run(
const double& x) { return ::erf(x); }
96template<
typename Scalar>
100 static EIGEN_STRONG_INLINE Scalar run(
const Scalar&)
103 THIS_TYPE_IS_NOT_SUPPORTED);
108template<
typename Scalar>
114#ifdef EIGEN_HAS_C99_MATH
119 static EIGEN_STRONG_INLINE
float run(
const float x) { return ::erfcf(x); }
123struct erfc_impl<double>
126 static EIGEN_STRONG_INLINE
double run(
const double x) { return ::erfc(x); }
135template<
typename Scalar>
137inline EIGEN_MATHFUNC_RETVAL(lgamma, Scalar) lgamma(
const Scalar& x)
139 return EIGEN_MATHFUNC_IMPL(lgamma, Scalar)::run(x);
142template<
typename Scalar>
144inline EIGEN_MATHFUNC_RETVAL(erf, Scalar) erf(
const Scalar& x)
146 return EIGEN_MATHFUNC_IMPL(erf, Scalar)::run(x);
149template<
typename Scalar>
151inline EIGEN_MATHFUNC_RETVAL(erfc, Scalar) erfc(
const Scalar& x)
153 return EIGEN_MATHFUNC_IMPL(erfc, Scalar)::run(x);
Pseudo expression representing a solving operation.
Definition Solve.h:63
Definition SpecialFunctions.h:60
Definition SpecialFunctions.h:72
Definition SpecialFunctions.h:98
Definition SpecialFunctions.h:110
Definition SpecialFunctions.h:22
Definition SpecialFunctions.h:34