Main MRPT website > C++ reference
MRPT logo
Classes | Namespaces | Defines | Typedefs | Functions

PacketMath.h File Reference

Go to the source code of this file.

Classes

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

Namespaces

namespace  internal
 

Applies the clock wise 2D rotation j to the set of 2D vectors of cordinates x and y: $ \left ( \begin{array}{cc} x \\ y \end{array} \right ) = J \left ( \begin{array}{cc} x \\ y \end{array} \right ) $


Defines

#define EIGEN_CACHEFRIENDLY_PRODUCT_THRESHOLD   8
#define EIGEN_ARCH_DEFAULT_NUMBER_OF_REGISTERS   (2*sizeof(void*))
#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 vec4i_swizzle1(v, p, q, r, s)   (_mm_shuffle_epi32( v, ((s)<<6|(r)<<4|(q)<<2|(p))))
#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_swizzle2(a, b, p, q, r, s)   (_mm_shuffle_ps( (a), (b), ((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))))))
#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)

Typedefs

typedef __m128d internal::Packet2d

Functions

template<>
EIGEN_STRONG_INLINE Packet4f internal::pset1< Packet4f > (const float &from)
template<>
EIGEN_STRONG_INLINE Packet2d internal::pset1< Packet2d > (const double &from)
template<>
EIGEN_STRONG_INLINE Packet4i internal::pset1< Packet4i > (const int &from)
template<>
EIGEN_STRONG_INLINE Packet4f internal::plset< float > (const float &a)
template<>
EIGEN_STRONG_INLINE Packet2d internal::plset< double > (const double &a)
template<>
EIGEN_STRONG_INLINE Packet4i internal::plset< int > (const int &a)
template<>
EIGEN_STRONG_INLINE Packet4f internal::padd< Packet4f > (const Packet4f &a, const Packet4f &b)
template<>
EIGEN_STRONG_INLINE Packet2d internal::padd< Packet2d > (const Packet2d &a, const Packet2d &b)
template<>
EIGEN_STRONG_INLINE Packet4i internal::padd< Packet4i > (const Packet4i &a, const Packet4i &b)
template<>
EIGEN_STRONG_INLINE Packet4f internal::psub< Packet4f > (const Packet4f &a, const Packet4f &b)
template<>
EIGEN_STRONG_INLINE Packet2d internal::psub< Packet2d > (const Packet2d &a, const Packet2d &b)
template<>
EIGEN_STRONG_INLINE Packet4i internal::psub< Packet4i > (const Packet4i &a, const Packet4i &b)
template<>
EIGEN_STRONG_INLINE Packet4f internal::pnegate (const Packet4f &a)
template<>
EIGEN_STRONG_INLINE Packet2d internal::pnegate (const Packet2d &a)
template<>
EIGEN_STRONG_INLINE Packet4i internal::pnegate (const Packet4i &a)
template<>
EIGEN_STRONG_INLINE Packet4f internal::pmul< Packet4f > (const Packet4f &a, const Packet4f &b)
template<>
EIGEN_STRONG_INLINE Packet2d internal::pmul< Packet2d > (const Packet2d &a, const Packet2d &b)
template<>
EIGEN_STRONG_INLINE Packet4i internal::pmul< Packet4i > (const Packet4i &a, const Packet4i &b)
template<>
EIGEN_STRONG_INLINE Packet4f internal::pdiv< Packet4f > (const Packet4f &a, const Packet4f &b)
template<>
EIGEN_STRONG_INLINE Packet2d internal::pdiv< Packet2d > (const Packet2d &a, const Packet2d &b)
template<>
EIGEN_STRONG_INLINE Packet4i internal::pdiv< Packet4i > (const Packet4i &, const Packet4i &)
template<>
EIGEN_STRONG_INLINE Packet4i internal::pmadd (const Packet4i &a, const Packet4i &b, const Packet4i &c)
template<>
EIGEN_STRONG_INLINE Packet4f internal::pmin< Packet4f > (const Packet4f &a, const Packet4f &b)
template<>
EIGEN_STRONG_INLINE Packet2d internal::pmin< Packet2d > (const Packet2d &a, const Packet2d &b)
template<>
EIGEN_STRONG_INLINE Packet4i internal::pmin< Packet4i > (const Packet4i &a, const Packet4i &b)
template<>
EIGEN_STRONG_INLINE Packet4f internal::pmax< Packet4f > (const Packet4f &a, const Packet4f &b)
template<>
EIGEN_STRONG_INLINE Packet2d internal::pmax< Packet2d > (const Packet2d &a, const Packet2d &b)
template<>
EIGEN_STRONG_INLINE Packet4i internal::pmax< Packet4i > (const Packet4i &a, const Packet4i &b)
template<>
EIGEN_STRONG_INLINE Packet4f internal::pand< Packet4f > (const Packet4f &a, const Packet4f &b)
template<>
EIGEN_STRONG_INLINE Packet2d internal::pand< Packet2d > (const Packet2d &a, const Packet2d &b)
template<>
EIGEN_STRONG_INLINE Packet4i internal::pand< Packet4i > (const Packet4i &a, const Packet4i &b)
template<>
EIGEN_STRONG_INLINE Packet4f internal::por< Packet4f > (const Packet4f &a, const Packet4f &b)
template<>
EIGEN_STRONG_INLINE Packet2d internal::por< Packet2d > (const Packet2d &a, const Packet2d &b)
template<>
EIGEN_STRONG_INLINE Packet4i internal::por< Packet4i > (const Packet4i &a, const Packet4i &b)
template<>
EIGEN_STRONG_INLINE Packet4f internal::pxor< Packet4f > (const Packet4f &a, const Packet4f &b)
template<>
EIGEN_STRONG_INLINE Packet2d internal::pxor< Packet2d > (const Packet2d &a, const Packet2d &b)
template<>
EIGEN_STRONG_INLINE Packet4i internal::pxor< Packet4i > (const Packet4i &a, const Packet4i &b)
template<>
EIGEN_STRONG_INLINE Packet4f internal::pandnot< Packet4f > (const Packet4f &a, const Packet4f &b)
template<>
EIGEN_STRONG_INLINE Packet2d internal::pandnot< Packet2d > (const Packet2d &a, const Packet2d &b)
template<>
EIGEN_STRONG_INLINE Packet4i internal::pandnot< Packet4i > (const Packet4i &a, const Packet4i &b)
template<>
EIGEN_STRONG_INLINE Packet4f internal::pload< Packet4f > (const float *from)
template<>
EIGEN_STRONG_INLINE Packet2d internal::pload< Packet2d > (const double *from)
template<>
EIGEN_STRONG_INLINE Packet4i internal::pload< Packet4i > (const int *from)
template<>
EIGEN_STRONG_INLINE Packet4f internal::ploadu< Packet4f > (const float *from)
template<>
EIGEN_STRONG_INLINE Packet2d internal::ploadu< Packet2d > (const double *from)
template<>
EIGEN_STRONG_INLINE Packet4i internal::ploadu< Packet4i > (const int *from)
template<>
EIGEN_STRONG_INLINE Packet4f internal::ploaddup< Packet4f > (const float *from)
template<>
EIGEN_STRONG_INLINE Packet2d internal::ploaddup< Packet2d > (const double *from)
template<>
EIGEN_STRONG_INLINE Packet4i internal::ploaddup< Packet4i > (const int *from)
template<>
EIGEN_STRONG_INLINE void internal::pstore< float > (float *to, const Packet4f &from)
template<>
EIGEN_STRONG_INLINE void internal::pstore< double > (double *to, const Packet2d &from)
template<>
EIGEN_STRONG_INLINE void internal::pstore< int > (int *to, const Packet4i &from)
template<>
EIGEN_STRONG_INLINE void internal::pstoreu< double > (double *to, const Packet2d &from)
template<>
EIGEN_STRONG_INLINE void internal::pstoreu< float > (float *to, const Packet4f &from)
template<>
EIGEN_STRONG_INLINE void internal::pstoreu< int > (int *to, const Packet4i &from)
template<>
EIGEN_STRONG_INLINE void internal::prefetch< float > (const float *addr)
template<>
EIGEN_STRONG_INLINE void internal::prefetch< double > (const double *addr)
template<>
EIGEN_STRONG_INLINE void internal::prefetch< int > (const int *addr)
template<>
EIGEN_STRONG_INLINE float internal::pfirst< Packet4f > (const Packet4f &a)
template<>
EIGEN_STRONG_INLINE double internal::pfirst< Packet2d > (const Packet2d &a)
template<>
EIGEN_STRONG_INLINE int internal::pfirst< Packet4i > (const Packet4i &a)
template<>
EIGEN_STRONG_INLINE Packet4f internal::preverse (const Packet4f &a)
template<>
EIGEN_STRONG_INLINE Packet2d internal::preverse (const Packet2d &a)
template<>
EIGEN_STRONG_INLINE Packet4i internal::preverse (const Packet4i &a)
template<>
EIGEN_STRONG_INLINE Packet4f internal::pabs (const Packet4f &a)
template<>
EIGEN_STRONG_INLINE Packet2d internal::pabs (const Packet2d &a)
template<>
EIGEN_STRONG_INLINE Packet4i internal::pabs (const Packet4i &a)
EIGEN_STRONG_INLINE void internal::punpackp (Packet4f *vecs)
template<>
EIGEN_STRONG_INLINE float internal::predux< Packet4f > (const Packet4f &a)
template<>
EIGEN_STRONG_INLINE double internal::predux< Packet2d > (const Packet2d &a)
template<>
EIGEN_STRONG_INLINE Packet4f internal::preduxp< Packet4f > (const Packet4f *vecs)
template<>
EIGEN_STRONG_INLINE Packet2d internal::preduxp< Packet2d > (const Packet2d *vecs)
template<>
EIGEN_STRONG_INLINE int internal::predux< Packet4i > (const Packet4i &a)
template<>
EIGEN_STRONG_INLINE Packet4i internal::preduxp< Packet4i > (const Packet4i *vecs)
template<>
EIGEN_STRONG_INLINE float internal::predux_mul< Packet4f > (const Packet4f &a)
template<>
EIGEN_STRONG_INLINE double internal::predux_mul< Packet2d > (const Packet2d &a)
template<>
EIGEN_STRONG_INLINE int internal::predux_mul< Packet4i > (const Packet4i &a)
template<>
EIGEN_STRONG_INLINE float internal::predux_min< Packet4f > (const Packet4f &a)
template<>
EIGEN_STRONG_INLINE double internal::predux_min< Packet2d > (const Packet2d &a)
template<>
EIGEN_STRONG_INLINE int internal::predux_min< Packet4i > (const Packet4i &a)
template<>
EIGEN_STRONG_INLINE float internal::predux_max< Packet4f > (const Packet4f &a)
template<>
EIGEN_STRONG_INLINE double internal::predux_max< Packet2d > (const Packet2d &a)
template<>
EIGEN_STRONG_INLINE int internal::predux_max< Packet4i > (const Packet4i &a)

Define Documentation

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

Definition at line 61 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 64 of file SSE/PacketMath.h.

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

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

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

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

#define EIGEN_CACHEFRIENDLY_PRODUCT_THRESHOLD   8

Definition at line 31 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)))))
#define vec4f_swizzle1 (   v,
  p,
  q,
  r,
 
)    (_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,
 
)    (_mm_shuffle_ps( (a), (b), ((s)<<6|(r)<<4|(q)<<2|(p))))

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

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

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

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

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




Page generated by Doxygen 1.7.3 for MRPT 0.9.4 SVN:exported at Tue Jan 25 21:56:31 UTC 2011