QUDA  v0.5.0
A library for QCD on GPUs
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
Public Member Functions | Public Attributes | List of all members
FloatNOrder< Float, Ns, Nc, N > Struct Template Reference

#include <pack_spinor.h>

Public Member Functions

 FloatNOrder (Float *field, int volume, int stride)
 
virtual ~FloatNOrder ()
 
__device__ __host__ void load (Float v[Ns *Nc *2], int x, int volume) const
 
__device__ __host__ void save (const Float v[Ns *Nc *2], int x, int volume)
 
size_t Bytes () const
 
template<>
__device__ void load (float v[24], int x, int volume) const
 
template<>
__device__ void save (const float v[24], int x, int volume)
 

Public Attributes

Floatfield
 
int volume
 
int stride
 

Detailed Description

template<typename Float, int Ns, int Nc, int N>
struct FloatNOrder< Float, Ns, Nc, N >

Definition at line 46 of file pack_spinor.h.

Constructor & Destructor Documentation

template<typename Float, int Ns, int Nc, int N>
FloatNOrder< Float, Ns, Nc, N >::FloatNOrder ( Float field,
int  volume,
int  stride 
)
inline

Definition at line 50 of file pack_spinor.h.

template<typename Float, int Ns, int Nc, int N>
virtual FloatNOrder< Float, Ns, Nc, N >::~FloatNOrder ( )
inlinevirtual

Definition at line 52 of file pack_spinor.h.

Member Function Documentation

template<typename Float, int Ns, int Nc, int N>
size_t FloatNOrder< Float, Ns, Nc, N >::Bytes ( ) const
inline

Definition at line 78 of file pack_spinor.h.

template<typename Float, int Ns, int Nc, int N>
__device__ __host__ void FloatNOrder< Float, Ns, Nc, N >::load ( Float  v[Ns *Nc *2],
int  x,
int  volume 
) const
inline

Definition at line 54 of file pack_spinor.h.

template<>
__device__ void FloatNOrder< float, 4, 3, 4 >::load ( float  v[24],
int  x,
int  volume 
) const
inline

! float4 load specialization to obtain full coalescing.

Definition at line 82 of file pack_spinor.h.

template<typename Float, int Ns, int Nc, int N>
__device__ __host__ void FloatNOrder< Float, Ns, Nc, N >::save ( const Float  v[Ns *Nc *2],
int  x,
int  volume 
)
inline

Definition at line 66 of file pack_spinor.h.

template<>
__device__ void FloatNOrder< float, 4, 3, 4 >::save ( const float  v[24],
int  x,
int  volume 
)
inline

! float4 save specialization to obtain full coalescing.

Definition at line 92 of file pack_spinor.h.

Member Data Documentation

template<typename Float, int Ns, int Nc, int N>
Float* FloatNOrder< Float, Ns, Nc, N >::field

Definition at line 47 of file pack_spinor.h.

template<typename Float, int Ns, int Nc, int N>
int FloatNOrder< Float, Ns, Nc, N >::stride

Definition at line 49 of file pack_spinor.h.

template<typename Float, int Ns, int Nc, int N>
int FloatNOrder< Float, Ns, Nc, N >::volume

Definition at line 48 of file pack_spinor.h.


The documentation for this struct was generated from the following file: