vSMC
vSMC: Scalable Monte Carlo
Public Types | Public Member Functions | Static Public Member Functions | List of all members
vsmc::M256I< IntType > Class Template Reference

Using __mm256i as integer vector. More...

#include <vsmc/utility/simd.hpp>

Public Types

using value_type = IntType
 

Public Member Functions

 M256I ()=default
 
 M256I (const __m256i &value)
 
template<typename T >
 M256I (const M256I< T > &other)
 
__m256i * data ()
 
const __m256i * data () const
 
template<typename T >
void load (const T *mem)
 
template<typename T >
void load_a (const T *mem)
 
template<typename T >
void load_u (const T *mem)
 
template<typename T >
M256I< IntType > & operator= (const M256I< T > &other)
 
template<typename T >
void set (T e3, T e2, T e1, T e0)
 
template<typename T >
void set (T e7, T e6, T e5, T e4, T e3, T e2, T e1, T e0)
 
template<typename T >
void set (T e15, T e14, T e13, T e12, T e11, T e10, T e9, T e8, T e7, T e6, T e5, T e4, T e3, T e2, T e1, T e0)
 
template<typename T >
void set (T e31, T e30, T e29, T e28, T e27, T e26, T e25, T e24, T e23, T e22, T e21, T e20, T e19, T e18, T e17, T e16, T e15, T e14, T e13, T e12, T e11, T e10, T e9, T e8, T e7, T e6, T e5, T e4, T e3, T e2, T e1, T e0)
 
void set0 ()
 
template<typename T >
void set1 (T n)
 
template<typename T >
void store (T *mem) const
 
template<typename T >
void store_a (T *mem) const
 
template<typename T >
void store_u (T *mem) const
 
__m256i & value ()
 
const __m256i & value () const
 

Static Public Member Functions

static constexpr std::size_t size ()
 

Detailed Description

template<typename IntType = __m256i>
class vsmc::M256I< IntType >

Using __mm256i as integer vector.

Definition at line 804 of file simd.hpp.

Member Typedef Documentation

template<typename IntType = __m256i>
using vsmc::M256I< IntType >::value_type = IntType

Definition at line 807 of file simd.hpp.

Constructor & Destructor Documentation

template<typename IntType = __m256i>
vsmc::M256I< IntType >::M256I ( )
default
template<typename IntType = __m256i>
vsmc::M256I< IntType >::M256I ( const __m256i &  value)
inline

Definition at line 811 of file simd.hpp.

template<typename IntType = __m256i>
template<typename T >
vsmc::M256I< IntType >::M256I ( const M256I< T > &  other)
inline

Definition at line 814 of file simd.hpp.

Member Function Documentation

template<typename IntType = __m256i>
__m256i* vsmc::M256I< IntType >::data ( )
inline

Definition at line 834 of file simd.hpp.

template<typename IntType = __m256i>
const __m256i* vsmc::M256I< IntType >::data ( ) const
inline

Definition at line 835 of file simd.hpp.

template<typename IntType = __m256i>
template<typename T >
void vsmc::M256I< IntType >::load ( const T *  mem)
inline

Definition at line 850 of file simd.hpp.

template<typename IntType = __m256i>
template<typename T >
void vsmc::M256I< IntType >::load_a ( const T *  mem)
inline

Definition at line 838 of file simd.hpp.

template<typename IntType = __m256i>
template<typename T >
void vsmc::M256I< IntType >::load_u ( const T *  mem)
inline

Definition at line 844 of file simd.hpp.

template<typename IntType = __m256i>
template<typename T >
M256I<IntType>& vsmc::M256I< IntType >::operator= ( const M256I< T > &  other)
inline

Definition at line 819 of file simd.hpp.

template<typename IntType = __m256i>
template<typename T >
void vsmc::M256I< IntType >::set ( e3,
e2,
e1,
e0 
)
inline

Definition at line 884 of file simd.hpp.

template<typename IntType = __m256i>
template<typename T >
void vsmc::M256I< IntType >::set ( e7,
e6,
e5,
e4,
e3,
e2,
e1,
e0 
)
inline

Definition at line 892 of file simd.hpp.

template<typename IntType = __m256i>
template<typename T >
void vsmc::M256I< IntType >::set ( e15,
e14,
e13,
e12,
e11,
e10,
e9,
e8,
e7,
e6,
e5,
e4,
e3,
e2,
e1,
e0 
)
inline

Definition at line 900 of file simd.hpp.

template<typename IntType = __m256i>
template<typename T >
void vsmc::M256I< IntType >::set ( e31,
e30,
e29,
e28,
e27,
e26,
e25,
e24,
e23,
e22,
e21,
e20,
e19,
e18,
e17,
e16,
e15,
e14,
e13,
e12,
e11,
e10,
e9,
e8,
e7,
e6,
e5,
e4,
e3,
e2,
e1,
e0 
)
inline

Definition at line 915 of file simd.hpp.

template<typename IntType = __m256i>
void vsmc::M256I< IntType >::set0 ( )
inline

Definition at line 875 of file simd.hpp.

template<typename IntType = __m256i>
template<typename T >
void vsmc::M256I< IntType >::set1 ( n)
inline

Definition at line 878 of file simd.hpp.

template<typename IntType = __m256i>
static constexpr std::size_t vsmc::M256I< IntType >::size ( )
inlinestatic

Definition at line 826 of file simd.hpp.

template<typename IntType = __m256i>
template<typename T >
void vsmc::M256I< IntType >::store ( T *  mem) const
inline

Definition at line 869 of file simd.hpp.

template<typename IntType = __m256i>
template<typename T >
void vsmc::M256I< IntType >::store_a ( T *  mem) const
inline

Definition at line 857 of file simd.hpp.

template<typename IntType = __m256i>
template<typename T >
void vsmc::M256I< IntType >::store_u ( T *  mem) const
inline

Definition at line 863 of file simd.hpp.

template<typename IntType = __m256i>
__m256i& vsmc::M256I< IntType >::value ( )
inline

Definition at line 831 of file simd.hpp.

template<typename IntType = __m256i>
const __m256i& vsmc::M256I< IntType >::value ( ) const
inline

Definition at line 832 of file simd.hpp.