Made it possible to run the lgamma, erf, and erfc functors on a CUDA gpu.

This commit is contained in:
Benoit Steiner 2015-12-21 15:20:06 -08:00
parent 1c3e78319d
commit 3504ae47ca

View File

@ -415,7 +415,7 @@ template<typename Scalar> struct scalar_lgamma_op {
using numext::lgamma; return lgamma(a); using numext::lgamma; return lgamma(a);
} }
typedef typename packet_traits<Scalar>::type Packet; typedef typename packet_traits<Scalar>::type Packet;
inline Packet packetOp(const Packet& a) const { return internal::plgamma(a); } EIGEN_DEVICE_FUNC inline Packet packetOp(const Packet& a) const { return internal::plgamma(a); }
}; };
template<typename Scalar> template<typename Scalar>
struct functor_traits<scalar_lgamma_op<Scalar> > struct functor_traits<scalar_lgamma_op<Scalar> >
@ -438,7 +438,7 @@ template<typename Scalar> struct scalar_erf_op {
using numext::erf; return erf(a); using numext::erf; return erf(a);
} }
typedef typename packet_traits<Scalar>::type Packet; typedef typename packet_traits<Scalar>::type Packet;
inline Packet packetOp(const Packet& a) const { return internal::perf(a); } EIGEN_DEVICE_FUNC inline Packet packetOp(const Packet& a) const { return internal::perf(a); }
}; };
template<typename Scalar> template<typename Scalar>
struct functor_traits<scalar_erf_op<Scalar> > struct functor_traits<scalar_erf_op<Scalar> >
@ -461,7 +461,7 @@ template<typename Scalar> struct scalar_erfc_op {
using numext::erfc; return erfc(a); using numext::erfc; return erfc(a);
} }
typedef typename packet_traits<Scalar>::type Packet; typedef typename packet_traits<Scalar>::type Packet;
inline Packet packetOp(const Packet& a) const { return internal::perfc(a); } EIGEN_DEVICE_FUNC inline Packet packetOp(const Packet& a) const { return internal::perfc(a); }
}; };
template<typename Scalar> template<typename Scalar>
struct functor_traits<scalar_erfc_op<Scalar> > struct functor_traits<scalar_erfc_op<Scalar> >