38 #ifdef Vc_COMMON_MATH_H_INTERNAL 
   40 constexpr 
float log2_e = 1.44269504088896341f;
 
   41 constexpr 
float MAXLOGF = 88.72283905206835f;
 
   42 constexpr 
float MINLOGF = -103.278929903431851103f; 
 
   43 constexpr 
float MAXNUMF = 3.4028234663852885981170418348451692544e38f;
 
   45 template <typename Abi, typename = enable_if<std::is_same<Abi, VectorAbi::Sse>::value ||
 
   46                                              std::is_same<Abi, VectorAbi::Avx>::value>>
 
   47 inline Vector<float, Abi> 
exp(Vector<float, Abi> x)
 
   49     using V = Vector<float, Abi>;
 
   50     typedef typename V::Mask M;
 
   51     typedef Detail::Const<float, Abi> C;
 
   53         const M overflow  = x > MAXLOGF;
 
   54         const M underflow = x < MINLOGF;
 
   62         V z = floor(C::log2_e() * x + 0.5f);
 
   64         x -= z * C::ln2_large();
 
   65         x -= z * C::ln2_small();
 
   68         z = ((((( 1.9875691500E-4f  * x
 
   69                 + 1.3981999507E-3f) * x
 
   70                 + 8.3334519073E-3f) * x
 
   71                 + 4.1665795894E-2f) * x
 
   72                 + 1.6666665459E-1f) * x
 
   73                 + 5.0000001201E-1f) * (x * x)
 
   79         x(overflow) = std::numeric_limits<typename V::EntryType>::infinity();
 
   85 #endif // Vc_COMMON_MATH_H_INTERNAL 
Vc::Vector< T > exp(const Vc::Vector< T > &v)
Vc::Vector< T > ldexp(Vc::Vector< T > x, Vc::SimdArray< int, size()> e)
Multiply floating-point number by integral power of 2. 
Data-parallel type with (somewhat) arbitrary number of components.