10 #ifndef EIGEN_CUDA_SPECIALFUNCTIONS_H 11 #define EIGEN_CUDA_SPECIALFUNCTIONS_H 20 #if defined(__CUDACC__) && defined(EIGEN_USE_GPU) 23 float4 plgamma<float4>(
const float4& a)
25 return make_float4(lgammaf(a.x), lgammaf(a.y), lgammaf(a.z), lgammaf(a.w));
29 double2 plgamma<double2>(
const double2& a)
36 float4 pdigamma<float4>(
const float4& a)
43 double2 pdigamma<double2>(
const double2& a)
50 float4 pzeta<float4>(
const float4&
x,
const float4&
q)
57 double2 pzeta<double2>(
const double2& x,
const double2&
q)
60 return make_double2(
zeta(x.x,
q.x),
zeta(x.y,
q.y));
64 float4 ppolygamma<float4>(
const float4& n,
const float4& x)
71 double2 ppolygamma<double2>(
const double2& n,
const double2& x)
78 float4 perf<float4>(
const float4& a)
80 return make_float4(erff(a.x), erff(a.y), erff(a.z), erff(a.w));
84 double2 perf<double2>(
const double2& a)
87 return make_double2(
erf(a.x),
erf(a.y));
91 float4 perfc<float4>(
const float4& a)
98 double2 perfc<double2>(
const double2& a)
101 return make_double2(
erfc(a.x),
erfc(a.y));
106 float4 pigamma<float4>(
const float4& a,
const float4& x)
117 double2 pigamma<double2>(
const double2& a,
const double2& x)
120 return make_double2(
igamma(a.x, x.x),
igamma(a.y, x.y));
124 float4 pigammac<float4>(
const float4& a,
const float4& x)
135 double2 pigammac<double2>(
const double2& a,
const double2& x)
142 float4 pbetainc<float4>(
const float4& a,
const float4&
b,
const float4& x)
153 double2 pbetainc<double2>(
const double2& a,
const double2&
b,
const double2& x)
156 return make_double2(
betainc(a.x, b.x, x.x),
betainc(a.y, b.y, x.y));
165 #endif // EIGEN_CUDA_SPECIALFUNCTIONS_H #define EIGEN_STRONG_INLINE
const CwiseBinaryOp< internal::scalar_zeta_op< Scalar >, const Derived, const DerivedQ > zeta(const EIGEN_CURRENT_STORAGE_BASE_CLASS< DerivedQ > &q) const
EIGEN_DEVICE_FUNC const ErfReturnType erf() const
EIGEN_DEVICE_FUNC const Scalar & x
const Eigen::CwiseBinaryOp< Eigen::internal::scalar_igammac_op< typename Derived::Scalar >, const Derived, const ExponentDerived > igammac(const Eigen::ArrayBase< Derived > &a, const Eigen::ArrayBase< ExponentDerived > &x)
const Eigen::CwiseBinaryOp< Eigen::internal::scalar_igamma_op< typename Derived::Scalar >, const Derived, const ExponentDerived > igamma(const Eigen::ArrayBase< Derived > &a, const Eigen::ArrayBase< ExponentDerived > &x)
EIGEN_DEVICE_FUNC const Scalar & q
EIGEN_DEVICE_FUNC const ErfcReturnType erfc() const
const Eigen::CwiseBinaryOp< Eigen::internal::scalar_zeta_op< typename DerivedX::Scalar >, const DerivedX, const DerivedQ > zeta(const Eigen::ArrayBase< DerivedX > &x, const Eigen::ArrayBase< DerivedQ > &q)
const Eigen::CwiseBinaryOp< Eigen::internal::scalar_polygamma_op< typename DerivedX::Scalar >, const DerivedN, const DerivedX > polygamma(const Eigen::ArrayBase< DerivedN > &n, const Eigen::ArrayBase< DerivedX > &x)
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE const TensorCwiseTernaryOp< internal::scalar_betainc_op< typename XDerived::Scalar >, const ADerived, const BDerived, const XDerived > betainc(const ADerived &a, const BDerived &b, const XDerived &x)
EIGEN_DEVICE_FUNC const Scalar & b
EIGEN_DEVICE_FUNC const DigammaReturnType digamma() const
EIGEN_DEVICE_FUNC const LgammaReturnType lgamma() const