Classes | Namespaces | Macros | Typedefs | Functions
SSE/PacketMath.h File Reference

Go to the source code of this file.

Classes

struct  Eigen::internal::is_arithmetic< __m128 >
 
struct  Eigen::internal::is_arithmetic< __m128d >
 
struct  Eigen::internal::is_arithmetic< __m128i >
 
struct  Eigen::internal::packet_traits< double >
 
struct  Eigen::internal::packet_traits< float >
 
struct  Eigen::internal::packet_traits< int >
 
struct  Eigen::internal::palign_impl< Offset, Packet2d >
 
struct  Eigen::internal::palign_impl< Offset, Packet4f >
 
struct  Eigen::internal::palign_impl< Offset, Packet4i >
 
struct  Eigen::internal::scalar_div_cost< double, true >
 
struct  Eigen::internal::scalar_div_cost< float, true >
 
struct  Eigen::internal::unpacket_traits< Packet2d >
 
struct  Eigen::internal::unpacket_traits< Packet4f >
 
struct  Eigen::internal::unpacket_traits< Packet4i >
 

Namespaces

 Eigen
 
 Eigen::internal
 

Macros

#define _EIGEN_DECLARE_CONST_Packet2d(NAME, X)   const Packet2d p2d_##NAME = pset1<Packet2d>(X)
 
#define _EIGEN_DECLARE_CONST_Packet4f(NAME, X)   const Packet4f p4f_##NAME = pset1<Packet4f>(X)
 
#define _EIGEN_DECLARE_CONST_Packet4f_FROM_INT(NAME, X)   const Packet4f p4f_##NAME = _mm_castsi128_ps(pset1<Packet4i>(X))
 
#define _EIGEN_DECLARE_CONST_Packet4i(NAME, X)   const Packet4i p4i_##NAME = pset1<Packet4i>(X)
 
#define EIGEN_ARCH_DEFAULT_NUMBER_OF_REGISTERS   (2*sizeof(void*))
 
#define EIGEN_CACHEFRIENDLY_PRODUCT_THRESHOLD   8
 
#define vec2d_swizzle1(v, p, q)   (_mm_castsi128_pd(_mm_shuffle_epi32( _mm_castpd_si128(v), ((q*2+1)<<6|(q*2)<<4|(p*2+1)<<2|(p*2)))))
 
#define vec4f_swizzle1(v, p, q, r, s)   (_mm_castsi128_ps(_mm_shuffle_epi32( _mm_castps_si128(v), ((s)<<6|(r)<<4|(q)<<2|(p)))))
 
#define vec4f_swizzle2(a, b, p, q, r, s)   (_mm_shuffle_ps( (a), (b), ((s)<<6|(r)<<4|(q)<<2|(p))))
 
#define vec4i_swizzle1(v, p, q, r, s)   (_mm_shuffle_epi32( v, ((s)<<6|(r)<<4|(q)<<2|(p))))
 
#define vec4i_swizzle2(a, b, p, q, r, s)   (_mm_castps_si128( (_mm_shuffle_ps( _mm_castsi128_ps(a), _mm_castsi128_ps(b), ((s)<<6|(r)<<4|(q)<<2|(p))))))
 

Typedefs

typedef __m128d Eigen::internal::Packet2d
 

Functions

template<>
EIGEN_STRONG_INLINE Packet2d Eigen::internal::pabs (const Packet2d &a)
 
template<>
EIGEN_STRONG_INLINE Packet4f Eigen::internal::pabs (const Packet4f &a)
 
template<>
EIGEN_STRONG_INLINE Packet4i Eigen::internal::pabs (const Packet4i &a)
 
template<>
EIGEN_STRONG_INLINE Packet2d Eigen::internal::padd< Packet2d > (const Packet2d &a, const Packet2d &b)
 
template<>
EIGEN_STRONG_INLINE Packet4f Eigen::internal::padd< Packet4f > (const Packet4f &a, const Packet4f &b)
 
template<>
EIGEN_STRONG_INLINE Packet4i Eigen::internal::padd< Packet4i > (const Packet4i &a, const Packet4i &b)
 
template<>
EIGEN_STRONG_INLINE Packet2d Eigen::internal::pand< Packet2d > (const Packet2d &a, const Packet2d &b)
 
template<>
EIGEN_STRONG_INLINE Packet4f Eigen::internal::pand< Packet4f > (const Packet4f &a, const Packet4f &b)
 
template<>
EIGEN_STRONG_INLINE Packet4i Eigen::internal::pand< Packet4i > (const Packet4i &a, const Packet4i &b)
 
template<>
EIGEN_STRONG_INLINE Packet2d Eigen::internal::pandnot< Packet2d > (const Packet2d &a, const Packet2d &b)
 
template<>
EIGEN_STRONG_INLINE Packet4f Eigen::internal::pandnot< Packet4f > (const Packet4f &a, const Packet4f &b)
 
template<>
EIGEN_STRONG_INLINE Packet4i Eigen::internal::pandnot< Packet4i > (const Packet4i &a, const Packet4i &b)
 
template<>
EIGEN_STRONG_INLINE Packet4i Eigen::internal::pblend (const Selector< 4 > &ifPacket, const Packet4i &thenPacket, const Packet4i &elsePacket)
 
template<>
EIGEN_STRONG_INLINE Packet4f Eigen::internal::pblend (const Selector< 4 > &ifPacket, const Packet4f &thenPacket, const Packet4f &elsePacket)
 
template<>
EIGEN_STRONG_INLINE Packet2d Eigen::internal::pblend (const Selector< 2 > &ifPacket, const Packet2d &thenPacket, const Packet2d &elsePacket)
 
template<>
EIGEN_STRONG_INLINE void Eigen::internal::pbroadcast4< Packet2d > (const double *a, Packet2d &a0, Packet2d &a1, Packet2d &a2, Packet2d &a3)
 
template<>
EIGEN_STRONG_INLINE void Eigen::internal::pbroadcast4< Packet4f > (const float *a, Packet4f &a0, Packet4f &a1, Packet4f &a2, Packet4f &a3)
 
template<>
EIGEN_STRONG_INLINE Packet2d Eigen::internal::pconj (const Packet2d &a)
 
template<>
EIGEN_STRONG_INLINE Packet4f Eigen::internal::pconj (const Packet4f &a)
 
template<>
EIGEN_STRONG_INLINE Packet4i Eigen::internal::pconj (const Packet4i &a)
 
template<>
EIGEN_STRONG_INLINE Packet2d Eigen::internal::pdiv< Packet2d > (const Packet2d &a, const Packet2d &b)
 
template<>
EIGEN_STRONG_INLINE Packet4f Eigen::internal::pdiv< Packet4f > (const Packet4f &a, const Packet4f &b)
 
template<>
EIGEN_STRONG_INLINE double Eigen::internal::pfirst< Packet2d > (const Packet2d &a)
 
template<>
EIGEN_STRONG_INLINE float Eigen::internal::pfirst< Packet4f > (const Packet4f &a)
 
template<>
EIGEN_STRONG_INLINE int Eigen::internal::pfirst< Packet4i > (const Packet4i &a)
 
template<>
EIGEN_DEVICE_FUNC Packet2d Eigen::internal::pgather< double, Packet2d > (const double *from, Index stride)
 
template<>
EIGEN_DEVICE_FUNC Packet4f Eigen::internal::pgather< float, Packet4f > (const float *from, Index stride)
 
template<>
EIGEN_DEVICE_FUNC Packet4i Eigen::internal::pgather< int, Packet4i > (const int *from, Index stride)
 
template<>
EIGEN_STRONG_INLINE Packet4f Eigen::internal::pinsertfirst (const Packet4f &a, float b)
 
template<>
EIGEN_STRONG_INLINE Packet2d Eigen::internal::pinsertfirst (const Packet2d &a, double b)
 
template<>
EIGEN_STRONG_INLINE Packet4f Eigen::internal::pinsertlast (const Packet4f &a, float b)
 
template<>
EIGEN_STRONG_INLINE Packet2d Eigen::internal::pinsertlast (const Packet2d &a, double b)
 
template<>
EIGEN_STRONG_INLINE Packet2d Eigen::internal::pload< Packet2d > (const double *from)
 
template<>
EIGEN_STRONG_INLINE Packet4f Eigen::internal::pload< Packet4f > (const float *from)
 
template<>
EIGEN_STRONG_INLINE Packet4i Eigen::internal::pload< Packet4i > (const int *from)
 
template<>
EIGEN_STRONG_INLINE Packet2d Eigen::internal::ploaddup< Packet2d > (const double *from)
 
template<>
EIGEN_STRONG_INLINE Packet4f Eigen::internal::ploaddup< Packet4f > (const float *from)
 
template<>
EIGEN_STRONG_INLINE Packet4i Eigen::internal::ploaddup< Packet4i > (const int *from)
 
template<>
EIGEN_STRONG_INLINE Packet2d Eigen::internal::ploadu< Packet2d > (const double *from)
 
template<>
EIGEN_STRONG_INLINE Packet4f Eigen::internal::ploadu< Packet4f > (const float *from)
 
template<>
EIGEN_STRONG_INLINE Packet4i Eigen::internal::ploadu< Packet4i > (const int *from)
 
template<>
EIGEN_STRONG_INLINE Packet2d Eigen::internal::plset< Packet2d > (const double &a)
 
template<>
EIGEN_STRONG_INLINE Packet4f Eigen::internal::plset< Packet4f > (const float &a)
 
template<>
EIGEN_STRONG_INLINE Packet4i Eigen::internal::plset< Packet4i > (const int &a)
 
template<>
EIGEN_STRONG_INLINE Packet4i Eigen::internal::pmadd (const Packet4i &a, const Packet4i &b, const Packet4i &c)
 
template<>
EIGEN_STRONG_INLINE Packet2d Eigen::internal::pmax< Packet2d > (const Packet2d &a, const Packet2d &b)
 
template<>
EIGEN_STRONG_INLINE Packet4f Eigen::internal::pmax< Packet4f > (const Packet4f &a, const Packet4f &b)
 
template<>
EIGEN_STRONG_INLINE Packet4i Eigen::internal::pmax< Packet4i > (const Packet4i &a, const Packet4i &b)
 
template<>
EIGEN_STRONG_INLINE Packet2d Eigen::internal::pmin< Packet2d > (const Packet2d &a, const Packet2d &b)
 
template<>
EIGEN_STRONG_INLINE Packet4f Eigen::internal::pmin< Packet4f > (const Packet4f &a, const Packet4f &b)
 
template<>
EIGEN_STRONG_INLINE Packet4i Eigen::internal::pmin< Packet4i > (const Packet4i &a, const Packet4i &b)
 
template<>
EIGEN_STRONG_INLINE Packet2d Eigen::internal::pmul< Packet2d > (const Packet2d &a, const Packet2d &b)
 
template<>
EIGEN_STRONG_INLINE Packet4f Eigen::internal::pmul< Packet4f > (const Packet4f &a, const Packet4f &b)
 
template<>
EIGEN_STRONG_INLINE Packet4i Eigen::internal::pmul< Packet4i > (const Packet4i &a, const Packet4i &b)
 
template<>
EIGEN_STRONG_INLINE Packet2d Eigen::internal::pnegate (const Packet2d &a)
 
template<>
EIGEN_STRONG_INLINE Packet4f Eigen::internal::pnegate (const Packet4f &a)
 
template<>
EIGEN_STRONG_INLINE Packet4i Eigen::internal::pnegate (const Packet4i &a)
 
template<>
EIGEN_STRONG_INLINE Packet2d Eigen::internal::por< Packet2d > (const Packet2d &a, const Packet2d &b)
 
template<>
EIGEN_STRONG_INLINE Packet4f Eigen::internal::por< Packet4f > (const Packet4f &a, const Packet4f &b)
 
template<>
EIGEN_STRONG_INLINE Packet4i Eigen::internal::por< Packet4i > (const Packet4i &a, const Packet4i &b)
 
template<>
EIGEN_STRONG_INLINE double Eigen::internal::predux< Packet2d > (const Packet2d &a)
 
template<>
EIGEN_STRONG_INLINE float Eigen::internal::predux< Packet4f > (const Packet4f &a)
 
template<>
EIGEN_STRONG_INLINE int Eigen::internal::predux< Packet4i > (const Packet4i &a)
 
template<>
EIGEN_STRONG_INLINE double Eigen::internal::predux_max< Packet2d > (const Packet2d &a)
 
template<>
EIGEN_STRONG_INLINE float Eigen::internal::predux_max< Packet4f > (const Packet4f &a)
 
template<>
EIGEN_STRONG_INLINE int Eigen::internal::predux_max< Packet4i > (const Packet4i &a)
 
template<>
EIGEN_STRONG_INLINE double Eigen::internal::predux_min< Packet2d > (const Packet2d &a)
 
template<>
EIGEN_STRONG_INLINE float Eigen::internal::predux_min< Packet4f > (const Packet4f &a)
 
template<>
EIGEN_STRONG_INLINE int Eigen::internal::predux_min< Packet4i > (const Packet4i &a)
 
template<>
EIGEN_STRONG_INLINE double Eigen::internal::predux_mul< Packet2d > (const Packet2d &a)
 
template<>
EIGEN_STRONG_INLINE float Eigen::internal::predux_mul< Packet4f > (const Packet4f &a)
 
template<>
EIGEN_STRONG_INLINE int Eigen::internal::predux_mul< Packet4i > (const Packet4i &a)
 
template<>
EIGEN_STRONG_INLINE Packet2d Eigen::internal::preduxp< Packet2d > (const Packet2d *vecs)
 
template<>
EIGEN_STRONG_INLINE Packet4f Eigen::internal::preduxp< Packet4f > (const Packet4f *vecs)
 
template<>
EIGEN_STRONG_INLINE Packet4i Eigen::internal::preduxp< Packet4i > (const Packet4i *vecs)
 
template<>
EIGEN_STRONG_INLINE void Eigen::internal::prefetch< double > (const double *addr)
 
template<>
EIGEN_STRONG_INLINE void Eigen::internal::prefetch< float > (const float *addr)
 
template<>
EIGEN_STRONG_INLINE void Eigen::internal::prefetch< int > (const int *addr)
 
template<>
EIGEN_STRONG_INLINE Packet2d Eigen::internal::preverse (const Packet2d &a)
 
template<>
EIGEN_STRONG_INLINE Packet4f Eigen::internal::preverse (const Packet4f &a)
 
template<>
EIGEN_STRONG_INLINE Packet4i Eigen::internal::preverse (const Packet4i &a)
 
template<>
EIGEN_DEVICE_FUNC void Eigen::internal::pscatter< double, Packet2d > (double *to, const Packet2d &from, Index stride)
 
template<>
EIGEN_DEVICE_FUNC void Eigen::internal::pscatter< float, Packet4f > (float *to, const Packet4f &from, Index stride)
 
template<>
EIGEN_DEVICE_FUNC void Eigen::internal::pscatter< int, Packet4i > (int *to, const Packet4i &from, Index stride)
 
template<>
EIGEN_STRONG_INLINE Packet2d Eigen::internal::pset1< Packet2d > (const double &from)
 
template<>
EIGEN_STRONG_INLINE Packet4f Eigen::internal::pset1< Packet4f > (const float &from)
 
template<>
EIGEN_STRONG_INLINE Packet4i Eigen::internal::pset1< Packet4i > (const int &from)
 
template<>
EIGEN_STRONG_INLINE void Eigen::internal::pstore1< Packet2d > (double *to, const double &a)
 
template<>
EIGEN_STRONG_INLINE void Eigen::internal::pstore1< Packet4f > (float *to, const float &a)
 
template<>
EIGEN_STRONG_INLINE void Eigen::internal::pstore< double > (double *to, const Packet2d &from)
 
template<>
EIGEN_STRONG_INLINE void Eigen::internal::pstore< float > (float *to, const Packet4f &from)
 
template<>
EIGEN_STRONG_INLINE void Eigen::internal::pstore< int > (int *to, const Packet4i &from)
 
template<>
EIGEN_STRONG_INLINE void Eigen::internal::pstoreu< double > (double *to, const Packet2d &from)
 
template<>
EIGEN_STRONG_INLINE void Eigen::internal::pstoreu< float > (float *to, const Packet4f &from)
 
template<>
EIGEN_STRONG_INLINE void Eigen::internal::pstoreu< int > (int *to, const Packet4i &from)
 
template<>
EIGEN_STRONG_INLINE Packet2d Eigen::internal::psub< Packet2d > (const Packet2d &a, const Packet2d &b)
 
template<>
EIGEN_STRONG_INLINE Packet4f Eigen::internal::psub< Packet4f > (const Packet4f &a, const Packet4f &b)
 
template<>
EIGEN_STRONG_INLINE Packet4i Eigen::internal::psub< Packet4i > (const Packet4i &a, const Packet4i &b)
 
EIGEN_DEVICE_FUNC void Eigen::internal::ptranspose (PacketBlock< Packet4f, 4 > &kernel)
 
EIGEN_DEVICE_FUNC void Eigen::internal::ptranspose (PacketBlock< Packet4i, 4 > &kernel)
 
EIGEN_DEVICE_FUNC void Eigen::internal::ptranspose (PacketBlock< Packet2d, 2 > &kernel)
 
EIGEN_STRONG_INLINE void Eigen::internal::punpackp (Packet4f *vecs)
 
template<>
EIGEN_STRONG_INLINE Packet2d Eigen::internal::pxor< Packet2d > (const Packet2d &a, const Packet2d &b)
 
template<>
EIGEN_STRONG_INLINE Packet4f Eigen::internal::pxor< Packet4f > (const Packet4f &a, const Packet4f &b)
 
template<>
EIGEN_STRONG_INLINE Packet4i Eigen::internal::pxor< Packet4i > (const Packet4i &a, const Packet4i &b)
 

Macro Definition Documentation

#define _EIGEN_DECLARE_CONST_Packet2d (   NAME,
 
)    const Packet2d p2d_##NAME = pset1<Packet2d>(X)

Definition at line 82 of file SSE/PacketMath.h.

#define _EIGEN_DECLARE_CONST_Packet4f (   NAME,
 
)    const Packet4f p4f_##NAME = pset1<Packet4f>(X)

Definition at line 79 of file SSE/PacketMath.h.

#define _EIGEN_DECLARE_CONST_Packet4f_FROM_INT (   NAME,
 
)    const Packet4f p4f_##NAME = _mm_castsi128_ps(pset1<Packet4i>(X))

Definition at line 85 of file SSE/PacketMath.h.

#define _EIGEN_DECLARE_CONST_Packet4i (   NAME,
 
)    const Packet4i p4i_##NAME = pset1<Packet4i>(X)

Definition at line 88 of file SSE/PacketMath.h.

#define EIGEN_ARCH_DEFAULT_NUMBER_OF_REGISTERS   (2*sizeof(void*))

Definition at line 22 of file SSE/PacketMath.h.

#define EIGEN_CACHEFRIENDLY_PRODUCT_THRESHOLD   8

Definition at line 18 of file SSE/PacketMath.h.

#define vec2d_swizzle1 (   v,
  p,
 
)    (_mm_castsi128_pd(_mm_shuffle_epi32( _mm_castpd_si128(v), ((q*2+1)<<6|(q*2)<<4|(p*2+1)<<2|(p*2)))))

Definition at line 70 of file SSE/PacketMath.h.

#define vec4f_swizzle1 (   v,
  p,
  q,
  r,
  s 
)    (_mm_castsi128_ps(_mm_shuffle_epi32( _mm_castps_si128(v), ((s)<<6|(r)<<4|(q)<<2|(p)))))

Definition at line 64 of file SSE/PacketMath.h.

#define vec4f_swizzle2 (   a,
  b,
  p,
  q,
  r,
  s 
)    (_mm_shuffle_ps( (a), (b), ((s)<<6|(r)<<4|(q)<<2|(p))))

Definition at line 73 of file SSE/PacketMath.h.

#define vec4i_swizzle1 (   v,
  p,
  q,
  r,
  s 
)    (_mm_shuffle_epi32( v, ((s)<<6|(r)<<4|(q)<<2|(p))))

Definition at line 67 of file SSE/PacketMath.h.

#define vec4i_swizzle2 (   a,
  b,
  p,
  q,
  r,
  s 
)    (_mm_castps_si128( (_mm_shuffle_ps( _mm_castsi128_ps(a), _mm_castsi128_ps(b), ((s)<<6|(r)<<4|(q)<<2|(p))))))

Definition at line 76 of file SSE/PacketMath.h.



hebiros
Author(s): Xavier Artache , Matthew Tesch
autogenerated on Thu Sep 3 2020 04:09:50