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, 4 > Struct Template Reference

#include <color_spinor.h>

Public Member Functions

__device__ __host__ ColorSpinor ()
 
__device__ __host__ ColorSpinor (const ColorSpinor< Float, Nc, 4 > &a)
 
__device__ __host__ ColorSpinor< Float, Nc, 4 > & operator= (const ColorSpinor< Float, Nc, 4 > &a)
 
__device__ __host__ ColorSpinor< Float, Nc, 4 > & operator+= (const ColorSpinor< Float, Nc, 4 > &a)
 
template<typename T >
__device__ __host__ ColorSpinor< Float, Nc, 4 > & operator*= (const T &a)
 
__device__ __host__ ColorSpinor< Float, Nc, 4 > gamma (int dim)
 
__device__ __host__ ColorSpinor< Float, Nc, 4 > igamma (int dim)
 
__device__ __host__ ColorSpinor< Float, Nc, 2 > chiral_project (int chirality) const
 Project four-component spinor to either chirality. More...
 
__device__ __host__ ColorSpinor< Float, Nc, 2 > project (int dim, int sign) const
 
__device__ __host__ ColorSpinor< Float, Nc, 4 > sigma (int mu, int nu)
 
__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 toNonRel ()
 Transform from relativistic into non-relavisitic basis Required normalization factor of 1/2 included in clover normalization. More...
 
__device__ __host__ void toRel ()
 Transform from non-relativistic into relavisitic basis. More...
 
__device__ __host__ void print () const
 

Public Attributes

complex< Float > data [size]
 

Static Public Attributes

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

Detailed Description

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

This is the specialization for Nspin=4. For fields with four spins we can define a spin projection operation.

Definition at line 137 of file color_spinor.h.

Constructor & Destructor Documentation

◆ ColorSpinor() [1/4]

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

Definition at line 142 of file color_spinor.h.

◆ ColorSpinor() [2/4]

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

Definition at line 148 of file color_spinor.h.

◆ ColorSpinor() [3/4]

template<typename Float , int Nc>
template<typename S >
__device__ __host__ quda::ColorSpinor< Float, Nc, 4 >::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, 4 >::ColorSpinor ( const colorspinor_ghost_wrapper< Float, S > &  s)
inline

Member Function Documentation

◆ chiral_project()

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

Project four-component spinor to either chirality.

Parameters
[in]chiralityWhich chirality

Definition at line 298 of file color_spinor.h.

◆ gamma()

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

Return this application of gamma_dim to this spinor

Parameters
dimWhich dimension gamma matrix we are applying
Returns
The new spinor

Definition at line 179 of file color_spinor.h.

◆ igamma()

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

Return this application of gamma_dim to this spinor

Parameters
dimWhich dimension gamma matrix we are applying
Returns
The new spinor

Definition at line 239 of file color_spinor.h.

◆ operator()() [1/4]

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

1-d accessor functor

Parameters
[in]idxIndex
Returns
Complex number at this index

Definition at line 607 of file color_spinor.h.

◆ operator()() [2/4]

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

1-d accessor functor

Parameters
[in]idxIndex
Returns
Complex number at this index

Definition at line 614 of file color_spinor.h.

◆ operator()() [3/4]

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

2-d accessor functor

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

Definition at line 592 of file color_spinor.h.

◆ operator()() [4/4]

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

2-d accessor functor

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

Definition at line 600 of file color_spinor.h.

◆ operator*=()

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

Definition at line 167 of file color_spinor.h.

◆ operator+=()

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

Definition at line 161 of file color_spinor.h.

◆ operator=() [1/3]

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

Definition at line 153 of file color_spinor.h.

◆ operator=() [2/3]

template<typename Float , int Nc>
template<typename S >
__device__ __host__ void quda::ColorSpinor< Float, Nc, 4 >::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, 4 >::operator= ( const colorspinor_wrapper< Float, S > &  s)
inline

◆ print()

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

Definition at line 659 of file color_spinor.h.

◆ project()

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

Return this spinor spin projected

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

Definition at line 316 of file color_spinor.h.

◆ sigma()

template<typename Float , int Nc>
__device__ __host__ ColorSpinor<Float,Nc,4> quda::ColorSpinor< Float, Nc, 4 >::sigma ( int  mu,
int  nu 
)
inline

Return this spinor multiplied by sigma(mu,nu)

Parameters
mumu direction
nunu direction

sigma(0,1) = i 0 0 0 0 -i 0 0 0 0 i 0 0 0 0 -i

sigma(0,2) = 0 -1 0 0 1 0 0 0 0 0 0 -1 0 0 1 0

sigma(0,3) = 0 0 0 -i 0 0 -i 0 0 -i i 0 -i 0 0 0

sigma(1,2) = 0 i 0 0 i 0 0 0 0 0 0 i 0 0 i 0

sigma(1,3) = 0 0 0 -1 0 0 1 0 0 -1 0 0 1 0 0 0

sigma(2,3) = 0 0 -i 0 0 0 0 i -i 0 0 0 0 i 0 0

Definition at line 451 of file color_spinor.h.

◆ toNonRel()

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

Transform from relativistic into non-relavisitic basis Required normalization factor of 1/2 included in clover normalization.

Definition at line 632 of file color_spinor.h.

◆ toRel()

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

Transform from non-relativistic into relavisitic basis.

Definition at line 647 of file color_spinor.h.

Member Data Documentation

◆ data

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

Definition at line 140 of file color_spinor.h.

◆ Ns

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

Definition at line 138 of file color_spinor.h.

◆ size

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

Definition at line 139 of file color_spinor.h.


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