QUDA  0.9.0
Classes | Namespaces | Macros | Functions | Variables
gauge_field_order.h File Reference

Main header file for host and device accessors to GaugeFields. More...

#include <tune_quda.h>
#include <assert.h>
#include <register_traits.h>
#include <complex_quda.h>
#include <quda_matrix.h>
#include <index_helper.cuh>
#include <fast_intdiv.h>
#include <type_traits>
#include <atomic.cuh>
#include <thrust_helper.cuh>
Include dependency graph for gauge_field_order.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

struct  quda::gauge_wrapper< Float, T >
 gauge_wrapper is an internal class that is used to wrap instances of gauge accessors, currying in a specific location on the field. The operator() accessors in gauge-field accessors return instances to this class, allowing us to then use operator overloading upon this class to interact with the Matrix class. As a result we can include gauge-field accessors directly in Matrix expressions in kernels without having to declare temporaries with explicit calls to the load/save methods in the gauge-field accessors. More...
 
struct  quda::gauge_ghost_wrapper< Float, T >
 gauge_ghost_wrapper is an internal class that is used to wrap instances of gauge ghost accessors, currying in a specific location and dimension on the field. The Ghost() accessors in gauge-field accessors return instances to this class, allowing us to then use operator overloading upon this class to interact with the Matrix class. As a result we can include gauge-field ghost accessors directly in Matrix expressions in kernels without having to declare temporaries with explicit calls to the load/save methods in the gauge-field accessors. More...
 
struct  quda::gauge::square< ReduceType, Float >
 
struct  quda::gauge::Accessor< Float, nColor, order >
 
struct  quda::gauge::GhostAccessor< Float, nColor, order, native_ghost >
 
struct  quda::gauge::Accessor< Float, nColor, QUDA_QDP_GAUGE_ORDER >
 
struct  quda::gauge::GhostAccessor< Float, nColor, QUDA_QDP_GAUGE_ORDER, native_ghost >
 
struct  quda::gauge::Accessor< Float, nColor, QUDA_MILC_GAUGE_ORDER >
 
struct  quda::gauge::GhostAccessor< Float, nColor, QUDA_MILC_GAUGE_ORDER, native_ghost >
 
struct  quda::gauge::Accessor< Float, nColor, QUDA_FLOAT2_GAUGE_ORDER >
 
struct  quda::gauge::GhostAccessor< Float, nColor, QUDA_FLOAT2_GAUGE_ORDER, native_ghost >
 
struct  quda::gauge::FieldOrder< Float, nColor, nSpinCoarse, order, native_ghost >
 
struct  quda::gauge::Reconstruct< N, Float >
 
struct  quda::gauge::Reconstruct< 19, Float >
 
struct  quda::gauge::Reconstruct< 12, Float >
 
struct  quda::gauge::Reconstruct< 11, Float >
 
struct  quda::gauge::Reconstruct< 13, Float >
 
struct  quda::gauge::Reconstruct< 8, Float >
 
struct  quda::gauge::Reconstruct< 9, Float >
 
struct  quda::gauge::FloatNOrder< Float, length, N, reconLenParam, stag_phase, huge_alloc >
 
struct  quda::gauge::S< real, length >
 This is just a dummy structure we use for trove to define the required structure size. More...
 
struct  quda::gauge::LegacyOrder< Float, length >
 
struct  quda::gauge::QDPOrder< Float, length >
 
struct  quda::gauge::QDPJITOrder< Float, length >
 
struct  quda::gauge::MILCOrder< Float, length >
 
struct  quda::gauge::MILCSiteOrder< Float, length >
 struct to define gauge fields packed into an opaque MILC site struct: More...
 
struct  quda::gauge::CPSOrder< Float, length >
 
struct  quda::gauge::BQCDOrder< Float, length >
 struct to define BQCD ordered gauge fields: More...
 
struct  quda::gauge::TIFROrder< Float, length >
 
struct  quda::gauge::TIFRPaddedOrder< Float, length >
 
struct  quda::gauge_mapper< T, QudaReconstructType, N, stag, huge_alloc >
 
struct  quda::gauge_mapper< double, QUDA_RECONSTRUCT_NO, N, stag, huge_alloc >
 
struct  quda::gauge_mapper< double, QUDA_RECONSTRUCT_13, N, stag, huge_alloc >
 
struct  quda::gauge_mapper< double, QUDA_RECONSTRUCT_12, N, stag, huge_alloc >
 
struct  quda::gauge_mapper< double, QUDA_RECONSTRUCT_9, N, stag, huge_alloc >
 
struct  quda::gauge_mapper< double, QUDA_RECONSTRUCT_8, N, stag, huge_alloc >
 
struct  quda::gauge_mapper< float, QUDA_RECONSTRUCT_NO, N, stag, huge_alloc >
 
struct  quda::gauge_mapper< float, QUDA_RECONSTRUCT_13, N, stag, huge_alloc >
 
struct  quda::gauge_mapper< float, QUDA_RECONSTRUCT_12, N, stag, huge_alloc >
 
struct  quda::gauge_mapper< float, QUDA_RECONSTRUCT_9, N, stag, huge_alloc >
 
struct  quda::gauge_mapper< float, QUDA_RECONSTRUCT_8, N, stag, huge_alloc >
 
struct  quda::gauge_mapper< short, QUDA_RECONSTRUCT_NO, N, stag, huge_alloc >
 
struct  quda::gauge_mapper< short, QUDA_RECONSTRUCT_13, N, stag, huge_alloc >
 
struct  quda::gauge_mapper< short, QUDA_RECONSTRUCT_12, N, stag, huge_alloc >
 
struct  quda::gauge_mapper< short, QUDA_RECONSTRUCT_9, N, stag, huge_alloc >
 
struct  quda::gauge_mapper< short, QUDA_RECONSTRUCT_8, N, stag, huge_alloc >
 
struct  quda::gauge_order_mapper< T, order, Nc >
 
struct  quda::gauge_order_mapper< T, QUDA_QDP_GAUGE_ORDER, Nc >
 
struct  quda::gauge_order_mapper< T, QUDA_QDPJIT_GAUGE_ORDER, Nc >
 
struct  quda::gauge_order_mapper< T, QUDA_MILC_GAUGE_ORDER, Nc >
 
struct  quda::gauge_order_mapper< T, QUDA_BQCD_GAUGE_ORDER, Nc >
 
struct  quda::gauge_order_mapper< T, QUDA_TIFR_GAUGE_ORDER, Nc >
 
struct  quda::gauge_order_mapper< T, QUDA_TIFR_PADDED_GAUGE_ORDER, Nc >
 
struct  quda::gauge_order_mapper< T, QUDA_FLOAT2_GAUGE_ORDER, Nc >
 

Namespaces

 quda
 
 quda::gauge
 

Macros

#define DISABLE_TROVE
 
#define INSTANTIATE_RECONSTRUCT(func, g, ...)
 
#define INSTANTIATE_PRECISION(func, lat, ...)
 

Functions

template<int nColor, int N>
__device__ __host__ int quda::gauge::indexFloatN (int dim, int parity, int x_cb, int row, int col, int stride, int offset_cb)
 
template<typename Float , typename I >
__device__ __host__ Float quda::gauge::timeBoundary (int idx, const I X[QUDA_MAX_DIM], const int R[QUDA_MAX_DIM], QudaTboundary tBoundary, bool isFirstTimeSlice, bool isLastTimeSlice, QudaGhostExchange ghostExchange=QUDA_GHOST_EXCHANGE_NO)
 
template<typename Float , typename I >
__device__ __host__ Float quda::gauge::milcStaggeredPhase (int dim, const int x[], const I R[])
 
__host__ __device__ constexpr int quda::gauge::ct_sqrt (int n, int i=1)
 
__host__ __device__ constexpr int quda::gauge::Ncolor (int length)
 Return the number of colors of the accessor based on the length of the field. More...
 

Variables

constexpr bool quda::gauge::default_huge_alloc = true
 

Detailed Description

Main header file for host and device accessors to GaugeFields.

Definition in file gauge_field_order.h.

Macro Definition Documentation

◆ DISABLE_TROVE

#define DISABLE_TROVE

Definition at line 14 of file gauge_field_order.h.

◆ INSTANTIATE_PRECISION

#define INSTANTIATE_PRECISION (   func,
  lat,
  ... 
)
Value:
{ \
if (lat.Precision() == QUDA_DOUBLE_PRECISION) { \
func<double>(lat, __VA_ARGS__); \
} else if(lat.Precision() == QUDA_SINGLE_PRECISION) { \
func<float>(lat, __VA_ARGS__); \
} else { \
errorQuda("Precision %d not supported", lat.Precision()); \
} \
}

Definition at line 2136 of file gauge_field_order.h.

Referenced by quda::plaquette().

◆ INSTANTIATE_RECONSTRUCT

#define INSTANTIATE_RECONSTRUCT (   func,
  g,
  ... 
)
Value:
{ \
if (!data.isNative()) \
errorQuda("Field order %d and precision %d is not native", g.Order(), g.Precision()); \
if( g.Reconstruct() == QUDA_RECONSTRUCT_NO) { \
typedef typename gauge_mapper<Float,QUDA_RECONSTRUCT_NO>::type Gauge; \
func(Gauge(g), g, __VA_ARGS__); \
} else if( g.Reconstruct() == QUDA_RECONSTRUCT_12){ \
typedef typename gauge_mapper<Float,QUDA_RECONSTRUCT_12>::type Gauge; \
func(Gauge(g), g, __VA_ARGS__); \
} else if( g.Reconstruct() == QUDA_RECONSTRUCT_8){ \
typedef typename gauge_mapper<Float,QUDA_RECONSTRUCT_8>::type Gauge; \
func(Gauge(g), g, __VA_ARGS__); \
} else { \
errorQuda("Reconstruction type %d of gauge field not supported", g.Reconstruct()); \
} \
}
#define errorQuda(...)
Definition: util_quda.h:90

Definition at line 2118 of file gauge_field_order.h.