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

#include <clover_field_order.h>

Public Types

typedef mapper< Float >::type RegType
 
typedef mapper< Float >::type RegType
 
typedef mapper< Float >::type RegType
 

Public Member Functions

 FloatNOrder (const CloverField &clover, bool inverse, Float *clover_=0, float *norm_=0)
 
bool Twisted () const
 
Float Mu2 () const
 
__device__ __host__ void load (RegType v[length], int x, int parity) const
 
__device__ __host__ void save (const RegType v[length], int x, int parity)
 
size_t Bytes () const
 
 FloatNOrder (const ColorSpinorField &a, Float *field_=0, float *norm_=0)
 
virtual ~FloatNOrder ()
 
__device__ __host__ void load (RegType v[Ns *Nc *2], int x) const
 
__device__ __host__ void save (const RegType v[Ns *Nc *2], int x)
 
__device__ __host__ const RegTypeoperator() (int x, int s, int c, int z) const
 
__device__ __host__ RegTypeoperator() (int x, int s, int c, int z)
 
size_t Bytes () const
 
 FloatNOrder (const GaugeField &u, Float *gauge_=0, Float **ghost_=0)
 
 FloatNOrder (const FloatNOrder &order)
 
virtual ~FloatNOrder ()
 
__device__ __host__ void load (RegType v[length], int x, int dir, int parity) const
 
__device__ __host__ void save (const RegType v[length], int x, int dir, int parity)
 
__device__ __host__ void loadGhost (RegType v[length], int x, int dir, int parity) const
 
__device__ __host__ void saveGhost (const RegType v[length], int x, int dir, int parity)
 
__device__ __host__ void loadGhostEx (RegType v[length], int buff_idx, int extended_idx, int dir, int dim, int g, int parity, const int R[]) const
 
__device__ __host__ void saveGhostEx (const RegType v[length], int buff_idx, int extended_idx, int dir, int dim, int g, int parity, const int R[])
 
size_t Bytes () const
 
template<>
__device__ void load (float v[24], int x) const
 
template<>
__device__ void save (const float v[24], int x)
 

Public Attributes

Float * clover [2]
 
float * norm [2]
 
const int volumeCB
 
const int stride
 
const bool twisted
 
const Float mu2
 
Float * field
 
int volumeCB
 
int stride
 
Reconstruct< reconLen, Float > reconstruct
 
Float * gauge [2]
 
Float * ghost [4]
 
int faceVolumeCB [4]
 
const int geometry
 

Detailed Description

template<typename Float, int length, int N>
struct quda::FloatNOrder< Float, length, N >

The internal ordering for each clover matrix has chirality as the slowest running dimension, with the internal 36 degrees of freedom stored as follows (s=spin, c = color)

i | col | row | s c s c z 0 0 0 0 0 0 1 0 1 0 1 0 2 0 2 0 2 0 3 1 0 1 0 0 4 1 1 1 1 0 5 1 2 1 2 0 6 0 1 0 0 0 7 0 1 0 0 1 8 0 2 0 0 0 9 0 2 0 0 1 10 1 0 0 0 0 11 1 0 0 0 1 12 1 1 0 0 0 13 1 1 0 0 1 14 1 2 0 0 0 15 1 2 0 0 1 16 0 2 0 1 0 17 0 2 0 1 1 18 1 0 0 1 0 19 1 0 0 1 1 20 1 1 0 1 0 21 1 1 0 1 1 22 1 2 0 1 0 23 1 2 0 1 1 24 1 0 0 2 0 25 1 0 0 2 1 26 1 1 0 2 0 27 1 1 0 2 1 28 1 2 0 2 0 29 1 2 0 2 1 30 1 1 1 0 0 31 1 1 1 0 1 32 1 2 1 0 0 33 1 2 1 0 1 34 1 2 1 1 0 35 1 2 1 1 1 FloatN ordering for clover fields

Definition at line 56 of file clover_field_order.h.

Member Typedef Documentation

template<typename Float, int length, int N>
typedef mapper<Float>::type quda::FloatNOrder< Float, length, N >::RegType

Definition at line 57 of file clover_field_order.h.

template<typename Float, int length, int N>
typedef mapper<Float>::type quda::FloatNOrder< Float, length, N >::RegType

Definition at line 110 of file color_spinor_field_order.h.

template<typename Float, int length, int N>
typedef mapper<Float>::type quda::FloatNOrder< Float, length, N >::RegType

Definition at line 436 of file gauge_field_order.h.

Constructor & Destructor Documentation

template<typename Float, int length, int N>
quda::FloatNOrder< Float, length, N >::FloatNOrder ( const CloverField clover,
bool  inverse,
Float *  clover_ = 0,
float *  norm_ = 0 
)
inline

Definition at line 68 of file clover_field_order.h.

template<typename Float, int length, int N>
quda::FloatNOrder< Float, length, N >::FloatNOrder ( const ColorSpinorField a,
Float *  field_ = 0,
float *  norm_ = 0 
)
inline

Definition at line 115 of file color_spinor_field_order.h.

template<typename Float, int length, int N>
virtual quda::FloatNOrder< Float, length, N >::~FloatNOrder ( )
inlinevirtual

Definition at line 118 of file color_spinor_field_order.h.

template<typename Float, int length, int N>
quda::FloatNOrder< Float, length, N >::FloatNOrder ( const GaugeField u,
Float *  gauge_ = 0,
Float **  ghost_ = 0 
)
inline

Definition at line 449 of file gauge_field_order.h.

template<typename Float, int length, int N>
quda::FloatNOrder< Float, length, N >::FloatNOrder ( const FloatNOrder< Float, length, N > &  order)
inline

Definition at line 466 of file gauge_field_order.h.

template<typename Float, int length, int N>
virtual quda::FloatNOrder< Float, length, N >::~FloatNOrder ( )
inlinevirtual

Definition at line 480 of file gauge_field_order.h.

Member Function Documentation

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

Definition at line 123 of file clover_field_order.h.

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

Definition at line 168 of file color_spinor_field_order.h.

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

Definition at line 621 of file gauge_field_order.h.

template<typename Float, int length, int N>
__device__ __host__ void quda::FloatNOrder< Float, length, N >::load ( RegType  v[length],
int  x,
int  parity 
) const
inline

Definition at line 81 of file clover_field_order.h.

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

Definition at line 120 of file color_spinor_field_order.h.

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

! float4 load specialization to obtain full coalescing.

Definition at line 172 of file color_spinor_field_order.h.

template<typename Float, int length, int N>
__device__ __host__ void quda::FloatNOrder< Float, length, N >::load ( RegType  v[length],
int  x,
int  dir,
int  parity 
) const
inline

Definition at line 482 of file gauge_field_order.h.

template<typename Float, int length, int N>
__device__ __host__ void quda::FloatNOrder< Float, length, N >::loadGhost ( RegType  v[length],
int  x,
int  dir,
int  parity 
) const
inline

Definition at line 520 of file gauge_field_order.h.

template<typename Float, int length, int N>
__device__ __host__ void quda::FloatNOrder< Float, length, N >::loadGhostEx ( RegType  v[length],
int  buff_idx,
int  extended_idx,
int  dir,
int  dim,
int  g,
int  parity,
const int  R[] 
) const
inline

Definition at line 573 of file gauge_field_order.h.

template<typename Float, int length, int N>
Float quda::FloatNOrder< Float, length, N >::Mu2 ( ) const
inline

Definition at line 77 of file clover_field_order.h.

template<typename Float, int length, int N>
__device__ __host__ const RegType& quda::FloatNOrder< Float, length, N >::operator() ( int  x,
int  s,
int  c,
int  z 
) const
inline

Definition at line 156 of file color_spinor_field_order.h.

template<typename Float, int length, int N>
__device__ __host__ RegType& quda::FloatNOrder< Float, length, N >::operator() ( int  x,
int  s,
int  c,
int  z 
)
inline

Definition at line 162 of file color_spinor_field_order.h.

template<typename Float, int length, int N>
__device__ __host__ void quda::FloatNOrder< Float, length, N >::save ( const RegType  v[length],
int  x,
int  parity 
)
inline

Definition at line 95 of file clover_field_order.h.

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

Definition at line 134 of file color_spinor_field_order.h.

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

! float4 save specialization to obtain full coalescing.

Definition at line 182 of file color_spinor_field_order.h.

template<typename Float, int length, int N>
__device__ __host__ void quda::FloatNOrder< Float, length, N >::save ( const RegType  v[length],
int  x,
int  dir,
int  parity 
)
inline

Definition at line 500 of file gauge_field_order.h.

template<typename Float, int length, int N>
__device__ __host__ void quda::FloatNOrder< Float, length, N >::saveGhost ( const RegType  v[length],
int  x,
int  dir,
int  parity 
)
inline

Definition at line 545 of file gauge_field_order.h.

template<typename Float, int length, int N>
__device__ __host__ void quda::FloatNOrder< Float, length, N >::saveGhostEx ( const RegType  v[length],
int  buff_idx,
int  extended_idx,
int  dir,
int  dim,
int  g,
int  parity,
const int  R[] 
)
inline

Definition at line 596 of file gauge_field_order.h.

template<typename Float, int length, int N>
bool quda::FloatNOrder< Float, length, N >::Twisted ( ) const
inline

Definition at line 76 of file clover_field_order.h.

Member Data Documentation

template<typename Float, int length, int N>
Float* quda::FloatNOrder< Float, length, N >::clover[2]

Definition at line 58 of file clover_field_order.h.

template<typename Float, int length, int N>
int quda::FloatNOrder< Float, length, N >::faceVolumeCB[4]

Definition at line 440 of file gauge_field_order.h.

template<typename Float, int length, int N>
Float* quda::FloatNOrder< Float, length, N >::field

Definition at line 111 of file color_spinor_field_order.h.

template<typename Float, int length, int N>
Float* quda::FloatNOrder< Float, length, N >::gauge[2]

Definition at line 438 of file gauge_field_order.h.

template<typename Float, int length, int N>
const int quda::FloatNOrder< Float, length, N >::geometry

Definition at line 443 of file gauge_field_order.h.

template<typename Float, int length, int N>
Float* quda::FloatNOrder< Float, length, N >::ghost[4]

Definition at line 439 of file gauge_field_order.h.

template<typename Float, int length, int N>
const Float quda::FloatNOrder< Float, length, N >::mu2

Definition at line 66 of file clover_field_order.h.

template<typename Float, int length, int N>
float * quda::FloatNOrder< Float, length, N >::norm

Definition at line 59 of file clover_field_order.h.

template<typename Float, int length, int N>
Reconstruct<reconLen,Float> quda::FloatNOrder< Float, length, N >::reconstruct

Definition at line 437 of file gauge_field_order.h.

template<typename Float, int length, int N>
const int quda::FloatNOrder< Float, length, N >::stride

Definition at line 61 of file clover_field_order.h.

template<typename Float, int length, int N>
int quda::FloatNOrder< Float, length, N >::stride

Definition at line 114 of file color_spinor_field_order.h.

template<typename Float, int length, int N>
const bool quda::FloatNOrder< Float, length, N >::twisted

Definition at line 65 of file clover_field_order.h.

template<typename Float, int length, int N>
const int quda::FloatNOrder< Float, length, N >::volumeCB

Definition at line 60 of file clover_field_order.h.

template<typename Float, int length, int N>
int quda::FloatNOrder< Float, length, N >::volumeCB

Definition at line 113 of file color_spinor_field_order.h.


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