This implementation works on both scalars and SIMD "packets".
481 constexpr
float alpha[] = {2.123732201653183437883853912353515625e-06f, 2.861979592125862836837768554687500000e-04f,
482 3.658048342913389205932617187500000000e-03f, 5.243302136659622192382812500000000000e-02f,
483 1.874160766601562500000000000000000000e-01f, 1.128379106521606445312500000000000000e+00f};
486 constexpr
float beta[] = {3.89185734093189239501953125000e-05f, 1.14329601638019084930419921875e-03f,
487 1.47520881146192550659179687500e-02f, 1.12945675849914550781250000000e-01f,
488 4.99425798654556274414062500000e-01f, 1.0f};
504 return pmax(
pmin(
r, pset1<T>(1.0f)), pset1<T>(-1.0f));
float * p
Definition: Tutorial_Map_using.cpp:9
RealScalar alpha
Definition: level1_cplx_impl.h:151
Scalar beta
Definition: level2_cplx_impl.h:36
EIGEN_DEVICE_FUNC Packet pdiv(const Packet &a, const Packet &b)
Definition: GenericPacketMath.h:368
EIGEN_DEVICE_FUNC Packet pmax(const Packet &a, const Packet &b)
Definition: GenericPacketMath.h:663
EIGEN_STRONG_INLINE Packet4cf pmul(const Packet4cf &a, const Packet4cf &b)
Definition: AVX/Complex.h:88
EIGEN_DEVICE_FUNC Packet pmin(const Packet &a, const Packet &b)
Definition: GenericPacketMath.h:649
EIGEN_DEVICE_FUNC const Scalar & q
Definition: SpecialFunctionsImpl.h:2019
EIGEN_DEVICE_FUNC const Scalar & x
Definition: SpecialFunctionsImpl.h:2024
Vector< double > x2(const Vector< double > &coord)
Cartesian coordinates centered at the point (1.5,1)
Definition: poisson/poisson_with_singularity/two_d_poisson.cc:102
static EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE Packet run(const Packet &x, const typename unpacket_traits< Packet >::type coeff[])
Definition: GenericPacketMathFunctions.h:86