16 #ifndef EIGEN_MATH_FUNCTIONS_ALTIVEC_H    17 #define EIGEN_MATH_FUNCTIONS_ALTIVEC_H    87 static Packet2l p2l_1023 = { 1023, 1023 };
   103   x = 
pmax(x, p4f_min_norm_pos);  
   104   emm0 = vec_sr(reinterpret_cast<Packet4i>(x),
   105                 reinterpret_cast<Packet4ui>(p4i_23));
   108   x = 
pand(x, p4f_inv_mant_mask);
   109   x = 
por(x, p4f_half);
   111   emm0 = 
psub(emm0, p4i_0x7f);
   120   Packet4f mask = 
reinterpret_cast<Packet4f>(vec_cmplt(x, p4f_cephes_SQRTHF));
   130   y  = 
pmadd(p4f_cephes_log_p0, x, p4f_cephes_log_p1);
   131   y1 = 
pmadd(p4f_cephes_log_p3, x, p4f_cephes_log_p4);
   132   y2 = 
pmadd(p4f_cephes_log_p6, x, p4f_cephes_log_p7);
   133   y  = 
pmadd(y , x, p4f_cephes_log_p2);
   134   y1 = 
pmadd(y1, x, p4f_cephes_log_p5);
   135   y2 = 
pmadd(y2, x, p4f_cephes_log_p8);
   136   y = 
pmadd(y, x3, y1);
   137   y = 
pmadd(y, x3, y2);
   140   y1 = 
pmul(e, p4f_cephes_log_q1);
   141   tmp = 
pmul(x2, p4f_half);
   144   y2 = 
pmul(e, p4f_cephes_log_q2);
   148   x = vec_sel(x, p4f_minus_inf, iszero_mask);
   149   x = vec_sel(p4f_minus_nan, x, isvalid_mask);
   162   x = 
pmax(
pmin(x, p4f_exp_hi), p4f_exp_lo);
   165   fx = 
pmadd(x, p4f_cephes_LOG2EF, p4f_half);
   169   tmp = 
pmul(fx, p4f_cephes_exp_C1);
   177   y = 
pmadd(y, x, p4f_cephes_exp_p1);
   178   y = 
pmadd(y, x, p4f_cephes_exp_p2);
   179   y = 
pmadd(y, x, p4f_cephes_exp_p3);
   180   y = 
pmadd(y, x, p4f_cephes_exp_p4);
   181   y = 
pmadd(y, x, p4f_cephes_exp_p5);
   186   emm0 = vec_cts(fx, 0);
   187   emm0 = vec_add(emm0, p4i_0x7f);
   188   emm0 = vec_sl(emm0, reinterpret_cast<Packet4ui>(p4i_23));
   193   return vec_sel(_x, 
pmax(
pmul(y, reinterpret_cast<Packet4f>(emm0)), _x),
   197 #ifndef EIGEN_COMP_CLANG   206 #ifndef EIGEN_COMP_CLANG   233 #if EIGEN_GNUC_AT_LEAST(5, 4) || \   234     (EIGEN_GNUC_AT(6, 1) && __GNUC_PATCHLEVEL__ >= 1)   235   return vec_cts(x, 0);    
   238   memcpy(tmp, &x, 
sizeof(tmp));
   239   Packet2l l = { 
static_cast<long long>(tmp[0]),
   240                  static_cast<long long>(tmp[1]) };
   254   x = 
pmax(
pmin(x, p2d_exp_hi), p2d_exp_lo);
   257   fx = 
pmadd(x, p2d_cephes_LOG2EF, p2d_half);
   261   tmp = 
pmul(fx, p2d_cephes_exp_C1);
   269   px = 
pmadd(px, x2, p2d_cephes_exp_p1);
   270   px = 
pmadd(px, x2, p2d_cephes_exp_p2);
   274   qx = 
pmadd(qx, x2, p2d_cephes_exp_q1);
   275   qx = 
pmadd(qx, x2, p2d_cephes_exp_q2);
   276   qx = 
pmadd(qx, x2, p2d_cephes_exp_q3);
   279   x = 
pmadd(p2d_2,x,p2d_1);
   282   emm0 = ConvertToPacket2l(fx);
   284 #ifdef __POWER8_VECTOR__    285   emm0 = vec_add(emm0, p2l_1023);
   286   emm0 = vec_sl(emm0, p2ul_52);
   295   emm04i = vec_add(emm04i, p4i_1023);
   296   emm04i = vec_sl(emm04i, reinterpret_cast<Packet4ui>(p4i_20));
   298     0x14, 0x15, 0x16, 0x17, 0x00, 0x01, 0x02, 0x03, 
   299     0x1c, 0x1d, 0x1e, 0x1f, 0x08, 0x09, 0x0a, 0x0b };
   301   emm0 = 
reinterpret_cast<Packet2l>(vec_perm(p4i_ZERO, emm04i, perm));
   303   emm0 = 
reinterpret_cast<Packet2l>(vec_perm(emm04i, p4i_ZERO, perm));
   311   return vec_sel(_x, 
pmax(
pmul(x, reinterpret_cast<Packet2d>(emm0)), _x),
   320 #endif  // EIGEN_MATH_FUNCTIONS_ALTIVEC_H static _EIGEN_DECLARE_CONST_Packet4i(0x7f, 0x7f)
__vector unsigned char Packet16uc
EIGEN_DEVICE_FUNC Packet por(const Packet &a, const Packet &b)
EIGEN_DEFINE_FUNCTION_ALLOWING_MULTIPLE_DEFINITIONS EIGEN_UNUSED Packet2d psqrt< Packet2d >(const Packet2d &x)
static _EIGEN_DECLARE_CONST_Packet4f_FROM_INT(inv_mant_mask, ~0x7f800000)
__vector unsigned int Packet4ui
#define EIGEN_DEFINE_FUNCTION_ALLOWING_MULTIPLE_DEFINITIONS
__vector long long Packet2l
EIGEN_DEVICE_FUNC Packet padd(const Packet &a, const Packet &b)
EIGEN_DEVICE_FUNC Packet pmin(const Packet &a, const Packet &b)
__vector unsigned long long Packet2ul
EIGEN_DEFINE_FUNCTION_ALLOWING_MULTIPLE_DEFINITIONS EIGEN_UNUSED Packet4f plog< Packet4f >(const Packet4f &_x)
EIGEN_DEFINE_FUNCTION_ALLOWING_MULTIPLE_DEFINITIONS EIGEN_UNUSED Packet4f prsqrt< Packet4f >(const Packet4f &x)
EIGEN_DEFINE_FUNCTION_ALLOWING_MULTIPLE_DEFINITIONS EIGEN_UNUSED Packet2d prsqrt< Packet2d >(const Packet2d &x)
EIGEN_DEVICE_FUNC Packet pdiv(const Packet &a, const Packet &b)
EIGEN_DECLARE_FUNCTION_ALLOWING_MULTIPLE_DEFINITIONS Packet pfloor(const Packet &a)
EIGEN_STRONG_INLINE Packet4f pmadd(const Packet4f &a, const Packet4f &b, const Packet4f &c)
EIGEN_DEVICE_FUNC Packet psub(const Packet &a, const Packet &b)
EIGEN_DEFINE_FUNCTION_ALLOWING_MULTIPLE_DEFINITIONS EIGEN_UNUSED Packet4f psqrt< Packet4f >(const Packet4f &x)
static _EIGEN_DECLARE_CONST_Packet4f(1, 1.0f)
EIGEN_DEFINE_FUNCTION_ALLOWING_MULTIPLE_DEFINITIONS EIGEN_UNUSED Packet4f pexp< Packet4f >(const Packet4f &_x)
EIGEN_DEFINE_FUNCTION_ALLOWING_MULTIPLE_DEFINITIONS EIGEN_UNUSED Packet2d pexp< Packet2d >(const Packet2d &_x)
EIGEN_DEVICE_FUNC Packet pmul(const Packet &a, const Packet &b)
static _EIGEN_DECLARE_CONST_Packet2d(1, 1.0)
EIGEN_DEVICE_FUNC Packet pmax(const Packet &a, const Packet &b)
EIGEN_DEVICE_FUNC Packet pand(const Packet &a, const Packet &b)