QUDA  v1.1.0
A library for QCD on GPUs
Public Member Functions | Public Attributes | Static Public Attributes | List of all members
quda::ColorSpinor< Float, Nc, 2 > Struct Template Reference

#include <color_spinor.h>

Public Member Functions

__device__ __host__ ColorSpinor ()
 
__device__ __host__ ColorSpinor (const ColorSpinor< Float, Nc, 2 > &a)
 
__device__ __host__ ColorSpinor< Float, Nc, 2 > & operator= (const ColorSpinor< Float, Nc, 2 > &a)
 
__device__ __host__ ColorSpinor< Float, Nc, 2 > & operator+= (const ColorSpinor< Float, Nc, 2 > &a)
 
template<typename T >
__device__ __host__ ColorSpinor< Float, Nc, 2 > & operator*= (const T &a)
 
__device__ __host__ ColorSpinor< Float, Nc, 4 > chiral_reconstruct (int chirality) const
 Reconstruct two-component spinor to a four-component spinor. More...
 
__device__ __host__ ColorSpinor< Float, Nc, 4 > reconstruct (int dim, int sign) const
 Spin reconstruct the full Spinor from the projected spinor. More...
 
__device__ __host__ complex< Float > & operator() (int s, int c)
 2-d accessor functor More...
 
__device__ __host__ const complex< Float > & operator() (int s, int c) const
 2-d accessor functor More...
 
__device__ __host__ complex< Float > & operator() (int idx)
 1-d accessor functor More...
 
__device__ __host__ const complex< Float > & operator() (int idx) const
 1-d accessor functor More...
 
template<typename S >
__device__ __host__ ColorSpinor (const colorspinor_wrapper< Float, S > &s)
 
template<typename S >
__device__ __host__ void operator= (const colorspinor_wrapper< Float, S > &s)
 
template<typename S >
__device__ __host__ ColorSpinor (const colorspinor_ghost_wrapper< Float, S > &s)
 
template<typename S >
__device__ __host__ void operator= (const colorspinor_ghost_wrapper< Float, S > &s)
 
__device__ __host__ void print () const
 

Public Attributes

complex< Float > data [size]
 

Static Public Attributes

static constexpr int Ns = 2
 
static constexpr int size = Ns * Nc
 

Detailed Description

template<typename Float, int Nc>
struct quda::ColorSpinor< Float, Nc, 2 >

This is the specialization for Nspin=2. For fields with two spins we can define a spin reconstruction operation.

Definition at line 674 of file color_spinor.h.

Constructor & Destructor Documentation

◆ ColorSpinor() [1/4]

template<typename Float , int Nc>
__device__ __host__ quda::ColorSpinor< Float, Nc, 2 >::ColorSpinor ( )
inline

Definition at line 679 of file color_spinor.h.

◆ ColorSpinor() [2/4]

template<typename Float , int Nc>
__device__ __host__ quda::ColorSpinor< Float, Nc, 2 >::ColorSpinor ( const ColorSpinor< Float, Nc, 2 > &  a)
inline

Definition at line 684 of file color_spinor.h.

◆ ColorSpinor() [3/4]

template<typename Float , int Nc>
template<typename S >
__device__ __host__ quda::ColorSpinor< Float, Nc, 2 >::ColorSpinor ( const colorspinor_wrapper< Float, S > &  s)
inline

◆ ColorSpinor() [4/4]

template<typename Float , int Nc>
template<typename S >
__device__ __host__ quda::ColorSpinor< Float, Nc, 2 >::ColorSpinor ( const colorspinor_ghost_wrapper< Float, S > &  s)
inline

Member Function Documentation

◆ chiral_reconstruct()

template<typename Float , int Nc>
__device__ __host__ ColorSpinor<Float,Nc,4> quda::ColorSpinor< Float, Nc, 2 >::chiral_reconstruct ( int  chirality) const
inline

Reconstruct two-component spinor to a four-component spinor.

Parameters
[in]chiralityWhich chirality we assigning to

Definition at line 715 of file color_spinor.h.

◆ operator()() [1/4]

template<typename Float , int Nc>
__device__ __host__ complex<Float>& quda::ColorSpinor< Float, Nc, 2 >::operator() ( int  idx)
inline

1-d accessor functor

Parameters
[in]idxIndex
Returns
Complex number at this index

Definition at line 874 of file color_spinor.h.

◆ operator()() [2/4]

template<typename Float , int Nc>
__device__ __host__ const complex<Float>& quda::ColorSpinor< Float, Nc, 2 >::operator() ( int  idx) const
inline

1-d accessor functor

Parameters
[in]idxIndex
Returns
Complex number at this index

Definition at line 881 of file color_spinor.h.

◆ operator()() [3/4]

template<typename Float , int Nc>
__device__ __host__ complex<Float>& quda::ColorSpinor< Float, Nc, 2 >::operator() ( int  s,
int  c 
)
inline

2-d accessor functor

Parameters
sSpin index @paran c Color index
Returns
Complex number at this spin and color index

Definition at line 859 of file color_spinor.h.

◆ operator()() [4/4]

template<typename Float , int Nc>
__device__ __host__ const complex<Float>& quda::ColorSpinor< Float, Nc, 2 >::operator() ( int  s,
int  c 
) const
inline

2-d accessor functor

Parameters
sSpin index
cColor index
Returns
Complex number at this spin and color index

Definition at line 867 of file color_spinor.h.

◆ operator*=()

template<typename Float , int Nc>
template<typename T >
__device__ __host__ ColorSpinor<Float, Nc, 2>& quda::ColorSpinor< Float, Nc, 2 >::operator*= ( const T &  a)
inline

Definition at line 704 of file color_spinor.h.

◆ operator+=()

template<typename Float , int Nc>
__device__ __host__ ColorSpinor<Float, Nc, 2>& quda::ColorSpinor< Float, Nc, 2 >::operator+= ( const ColorSpinor< Float, Nc, 2 > &  a)
inline

Definition at line 698 of file color_spinor.h.

◆ operator=() [1/3]

template<typename Float , int Nc>
__device__ __host__ ColorSpinor<Float, Nc, 2>& quda::ColorSpinor< Float, Nc, 2 >::operator= ( const ColorSpinor< Float, Nc, 2 > &  a)
inline

Definition at line 690 of file color_spinor.h.

◆ operator=() [2/3]

template<typename Float , int Nc>
template<typename S >
__device__ __host__ void quda::ColorSpinor< Float, Nc, 2 >::operator= ( const colorspinor_ghost_wrapper< Float, S > &  s)
inline

◆ operator=() [3/3]

template<typename Float , int Nc>
template<typename S >
__device__ __host__ void quda::ColorSpinor< Float, Nc, 2 >::operator= ( const colorspinor_wrapper< Float, S > &  s)
inline

◆ print()

template<typename Float , int Nc>
__device__ __host__ void quda::ColorSpinor< Float, Nc, 2 >::print ( ) const
inline

Definition at line 895 of file color_spinor.h.

◆ reconstruct()

template<typename Float , int Nc>
__device__ __host__ ColorSpinor<Float, Nc, 4> quda::ColorSpinor< Float, Nc, 2 >::reconstruct ( int  dim,
int  sign 
) const
inline

Spin reconstruct the full Spinor from the projected spinor.

Parameters
dimWhich dimension projector are we using
signPositive or negative projector
Returns
The spin-reconstructed Spinor

Definition at line 733 of file color_spinor.h.

Member Data Documentation

◆ data

template<typename Float , int Nc>
complex<Float> quda::ColorSpinor< Float, Nc, 2 >::data[size]

Definition at line 677 of file color_spinor.h.

◆ Ns

template<typename Float , int Nc>
constexpr int quda::ColorSpinor< Float, Nc, 2 >::Ns = 2
staticconstexpr

Definition at line 675 of file color_spinor.h.

◆ size

template<typename Float , int Nc>
constexpr int quda::ColorSpinor< Float, Nc, 2 >::size = Ns * Nc
staticconstexpr

Definition at line 676 of file color_spinor.h.


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