284 constexpr
float kClamp = 11.0f;
285 const T x =
pmin(
pmax(x_in, pset1<T>(-kClamp)), pset1<T>(kClamp));
292 constexpr
float alpha[] = {5.61802298761904239654541015625e-04, -4.91381669417023658752441406250e-03,
293 2.67075151205062866210937500000e-02, -1.12800106406211853027343750000e-01,
294 3.76122951507568359375000000000e-01, -1.12837910652160644531250000000e+00};
296 const T one = pset1<T>(1.0f);
302 if (!
predux_any(x_abs_gt_one_mask))
return erfc_small;
310 constexpr
float gamma[] = {1.0208116471767425537109375e-01f, 4.2920666933059692382812500e-01f,
311 3.2379078865051269531250000e-01f, 5.3971976041793823242187500e-02f};
312 constexpr
float delta[] = {1.7251677811145782470703125e-02f, 3.9137163758277893066406250e-01f,
313 1.0000000000000000000000000e+00f, 6.2173241376876831054687500e-01f,
314 9.5662862062454223632812500e-02f};
321 const T z =
pnmadd(exp2_hi, x2_lo, exp2_hi);
325 const T r =
pdiv(num, denom);
326 const T maybe_two =
pand(
pcmp_lt(
x, pset1<T>(0.0)), pset1<T>(2.0));
327 const T erfc_large =
pmadd(z,
r, maybe_two);
328 return pselect(x_abs_gt_one_mask, erfc_large, erfc_small);
RealScalar alpha
Definition: level1_cplx_impl.h:151
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE Packet twoprod_low(const Packet &x, const Packet &y, const Packet &xy)
Definition: GenericPacketMathFunctions.h:1716
EIGEN_STRONG_INLINE bool predux_any(const Packet4f &x)
Definition: AltiVec/PacketMath.h:2751
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 Packet4i pcmp_lt(const Packet4i &a, const Packet4i &b)
Definition: AltiVec/PacketMath.h:1341
EIGEN_STRONG_INLINE Packet4f pmadd(const Packet4f &a, const Packet4f &b, const Packet4f &c)
Definition: AltiVec/PacketMath.h:1218
EIGEN_STRONG_INLINE Packet4cf pmul(const Packet4cf &a, const Packet4cf &b)
Definition: AVX/Complex.h:88
EIGEN_DEVICE_FUNC Packet preciprocal(const Packet &a)
Definition: GenericPacketMath.h:1433
EIGEN_DEVICE_FUNC Packet pmin(const Packet &a, const Packet &b)
Definition: GenericPacketMath.h:649
EIGEN_STRONG_INLINE Packet2cf pnegate(const Packet2cf &a)
Definition: AltiVec/Complex.h:264
EIGEN_STRONG_INLINE Packet8h pand(const Packet8h &a, const Packet8h &b)
Definition: AVX/PacketMath.h:2319
EIGEN_STRONG_INLINE Packet4f pnmadd(const Packet4f &a, const Packet4f &b, const Packet4f &c)
Definition: LSX/PacketMath.h:827
EIGEN_STRONG_INLINE Packet4f pselect(const Packet4f &mask, const Packet4f &a, const Packet4f &b)
Definition: AltiVec/PacketMath.h:1474
EIGEN_STRONG_INLINE Packet4f pexp(const Packet4f &_x)
Definition: LSX/PacketMath.h:2663
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
int delta
Definition: MultiOpt.py:96
Mdouble gamma(Mdouble gamma_in)
This is the gamma function returns the true value for the half integer value.
Definition: ExtendedMath.cc:116
static EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE Packet run(const Packet &x, const typename unpacket_traits< Packet >::type coeff[])
Definition: GenericPacketMathFunctions.h:86