QUDA  v1.1.0
A library for QCD on GPUs
Classes | Namespaces | Macros | Functions
color_spinor_field_order.h File Reference
#include <register_traits.h>
#include <convert.h>
#include <typeinfo>
#include <complex_quda.h>
#include <index_helper.cuh>
#include <color_spinor.h>
#include <color_spinor_field.h>
#include <trove_helper.cuh>
#include <transform_reduce.h>

Go to the source code of this file.

Classes

struct  quda::colorspinor_wrapper< Float, T >
 colorspinor_wrapper is an internal class that is used to wrap instances of colorspinor accessors, currying in a specifc location on the field. The operator() accessors in colorspinor-field accessors return instances to this class, allowing us to then use operator overloading upon this class to interact with the ColorSpinor class. As a result we can include colorspinor-field accessors directly in ColorSpinor expressions in kernels without having to declare temporaries with explicit calls to the load/save methods in the colorspinor-field accessors. More...
 
struct  quda::colorspinor_ghost_wrapper< Float, T >
 colorspinor_ghost_wrapper is an internal class that is used to wrap instances of colorspinor accessors, currying in a specifc location on the field. The Ghost() accessors in colorspinor-field accessors return instances to this class, allowing us to then use operator overloading upon this class to interact with the ColorSpinor class. As a result we can include colorspinor-field accessors directly in ColorSpinor expressions in kernels without having to declare temporaries with explicit calls to the loadGhost/saveGhost methods in the colorspinor-field accessors. More...
 
struct  quda::colorspinor::square_< ReduceType, Float >
 
struct  quda::colorspinor::square_< ReduceType, short >
 
struct  quda::colorspinor::square_< ReduceType, int8_t >
 
struct  quda::colorspinor::abs_< Float, storeFloat >
 
struct  quda::colorspinor::abs_< Float, short >
 
struct  quda::colorspinor::abs_< Float, int8_t >
 
struct  quda::colorspinor::AccessorCB< Float, nSpin, nColor, nVec, order >
 
struct  quda::colorspinor::GhostAccessorCB< Float, nSpin, nColor, nVec, order >
 
struct  quda::colorspinor::AccessorCB< Float, nSpin, nColor, nVec, QUDA_SPACE_SPIN_COLOR_FIELD_ORDER >
 
struct  quda::colorspinor::GhostAccessorCB< Float, nSpin, nColor, nVec, QUDA_SPACE_SPIN_COLOR_FIELD_ORDER >
 
struct  quda::colorspinor::AccessorCB< Float, nSpin, nColor, nVec, QUDA_FLOAT2_FIELD_ORDER >
 
struct  quda::colorspinor::GhostAccessorCB< Float, nSpin, nColor, nVec, QUDA_FLOAT2_FIELD_ORDER >
 
struct  quda::colorspinor::AccessorCB< Float, nSpin, nColor, nVec, QUDA_FLOAT4_FIELD_ORDER >
 
struct  quda::colorspinor::GhostAccessorCB< Float, nSpin, nColor, nVec, QUDA_FLOAT4_FIELD_ORDER >
 
struct  quda::colorspinor::AccessorCB< Float, nSpin, nColor, nVec, QUDA_FLOAT8_FIELD_ORDER >
 
struct  quda::colorspinor::GhostAccessorCB< Float, nSpin, nColor, nVec, QUDA_FLOAT8_FIELD_ORDER >
 
struct  quda::colorspinor::fieldorder_wrapper< Float, storeFloat >
 fieldorder_wrapper is an internal class that is used to wrap instances of FieldOrder accessors, currying in the specific location on the field. This is used as a helper class for fixed-point accessors providing the necessary conversion and scaling when writing to a fixed-point field. More...
 
class  quda::colorspinor::FieldOrderCB< Float, nSpin, nColor, nVec, order, storeFloat, ghostFloat, disable_ghost, block_float >
 
struct  quda::colorspinor::FloatNOrder< Float, Ns, Nc, N_, spin_project, huge_alloc >
 Accessor routine for ColorSpinorFields in native field order. More...
 
struct  quda::colorspinor::S< real, length >
 This is just a dummy structure we use for trove to define the required structure size. More...
 
struct  quda::colorspinor::SpaceColorSpinorOrder< Float, Ns, Nc >
 
struct  quda::colorspinor::SpaceSpinorColorOrder< Float, Ns, Nc >
 
struct  quda::colorspinor::PaddedSpaceSpinorColorOrder< Float, Ns, Nc >
 
struct  quda::colorspinor::QDPJITDiracOrder< Float, Ns, Nc >
 
struct  quda::colorspinor_mapper< T, Ns, Nc, project, huge_alloc >
 
struct  quda::colorspinor_mapper< double, 4, Nc, false, huge_alloc >
 
struct  quda::colorspinor_mapper< double, 4, Nc, true, huge_alloc >
 
struct  quda::colorspinor_mapper< double, 2, Nc, false, huge_alloc >
 
struct  quda::colorspinor_mapper< double, 1, Nc, false, huge_alloc >
 
struct  quda::colorspinor_mapper< float, 4, Nc, false, huge_alloc >
 
struct  quda::colorspinor_mapper< float, 4, Nc, true, huge_alloc >
 
struct  quda::colorspinor_mapper< float, 2, Nc, false, huge_alloc >
 
struct  quda::colorspinor_mapper< float, 1, Nc, false, huge_alloc >
 
struct  quda::colorspinor_mapper< short, 4, Nc, false, huge_alloc >
 
struct  quda::colorspinor_mapper< short, 4, Nc, true, huge_alloc >
 
struct  quda::colorspinor_mapper< short, 2, Nc, false, huge_alloc >
 
struct  quda::colorspinor_mapper< short, 1, Nc, false, huge_alloc >
 
struct  quda::colorspinor_mapper< int8_t, 4, Nc, false, huge_alloc >
 
struct  quda::colorspinor_mapper< int8_t, 4, Nc, true, huge_alloc >
 
struct  quda::colorspinor_mapper< int8_t, 2, Nc, false, huge_alloc >
 
struct  quda::colorspinor_mapper< int8_t, 1, Nc, false, huge_alloc >
 
struct  quda::colorspinor_order_mapper< T, order, Ns, Nc >
 
struct  quda::colorspinor_order_mapper< T, QUDA_SPACE_COLOR_SPIN_FIELD_ORDER, Ns, Nc >
 
struct  quda::colorspinor_order_mapper< T, QUDA_SPACE_SPIN_COLOR_FIELD_ORDER, Ns, Nc >
 
struct  quda::colorspinor_order_mapper< T, QUDA_FLOAT2_FIELD_ORDER, Ns, Nc >
 

Namespaces

 quda
 
 quda::colorspinor
 

Macros

#define N8   4
 

Functions

template<int nSpin, int nColor, int nVec, int N>
__device__ __host__ int quda::colorspinor::indexFloatN (int x_cb, int s, int c, int v, int stride)
 
template<typename Float , typename storeFloat >
__host__ constexpr __device__ bool quda::colorspinor::fixed_point ()
 
template<>
__host__ constexpr __device__ bool quda::colorspinor::fixed_point< float, int8_t > ()
 
template<>
__host__ constexpr __device__ bool quda::colorspinor::fixed_point< float, short > ()
 
template<>
__host__ constexpr __device__ bool quda::colorspinor::fixed_point< float, int > ()
 
template<typename Float , typename storeFloat >
__host__ constexpr __device__ bool quda::colorspinor::match ()
 
template<>
__host__ constexpr __device__ bool quda::colorspinor::match< int8_t, int8_t > ()
 
template<>
__host__ constexpr __device__ bool quda::colorspinor::match< int, int > ()
 
template<>
__host__ constexpr __device__ bool quda::colorspinor::match< short, short > ()
 

Detailed Description

DESCRIPTION

Define functors to allow for generic accessors regardless of field ordering. Currently this is used for cpu fields only with limited ordering support, but this will be expanded for device ordering also.

Definition in file color_spinor_field_order.h.

Macro Definition Documentation

◆ N8

#define N8   4

Definition at line 1768 of file color_spinor_field_order.h.