QUDA  v1.1.0
A library for QCD on GPUs
Public Types | Public Member Functions | Public Attributes | List of all members
quda::gauge::Reconstruct< 8, Float, ghostExchange_ > Struct Template Reference

Gauge reconstruct 8 helper where we reconstruct the gauge matrix from 8 packed elements (maximal compression) More...

#include <gauge_field_order.h>

Public Types

using real = typename mapper< Float >::type
 
using complex = complex< real >
 

Public Member Functions

 Reconstruct (const GaugeField &u, real scale=1.0)
 
 Reconstruct (const Reconstruct< 8, Float, ghostExchange_ > &recon)
 
__device__ __host__ void Pack (real out[8], const complex in[9], int idx) const
 
template<typename I >
__device__ __host__ void Unpack (complex out[9], const real in[8], int idx, int dir, real phase, const I *X, const int *R, const complex scale, const complex u) const
 
template<typename I >
__device__ __host__ void Unpack (complex out[9], const real in[8], int idx, int dir, real phase, const I *X, const int *R, const complex scale=complex(static_cast< real >(1.0), static_cast< real >(1.0))) const
 
__device__ __host__ real getPhase (const complex in[9])
 

Public Attributes

const complex anisotropy
 
const complex tBoundary
 
const int firstTimeSliceBound
 
const int lastTimeSliceBound
 
const bool isFirstTimeSlice
 
const bool isLastTimeSlice
 
QudaGhostExchange ghostExchange
 

Detailed Description

template<typename Float, QudaGhostExchange ghostExchange_>
struct quda::gauge::Reconstruct< 8, Float, ghostExchange_ >

Gauge reconstruct 8 helper where we reconstruct the gauge matrix from 8 packed elements (maximal compression)

Template Parameters
FloatStorage format (e.g., double, float, short)
ghostExchange_optional template the ghostExchange type to avoid the run-time overhead

Definition at line 1581 of file gauge_field_order.h.

Member Typedef Documentation

◆ complex

template<typename Float , QudaGhostExchange ghostExchange_>
using quda::gauge::Reconstruct< 8, Float, ghostExchange_ >::complex = complex<real>

Definition at line 1583 of file gauge_field_order.h.

◆ real

template<typename Float , QudaGhostExchange ghostExchange_>
using quda::gauge::Reconstruct< 8, Float, ghostExchange_ >::real = typename mapper<Float>::type

Definition at line 1582 of file gauge_field_order.h.

Constructor & Destructor Documentation

◆ Reconstruct() [1/2]

template<typename Float , QudaGhostExchange ghostExchange_>
quda::gauge::Reconstruct< 8, Float, ghostExchange_ >::Reconstruct ( const GaugeField u,
real  scale = 1.0 
)
inline

Definition at line 1593 of file gauge_field_order.h.

◆ Reconstruct() [2/2]

template<typename Float , QudaGhostExchange ghostExchange_>
quda::gauge::Reconstruct< 8, Float, ghostExchange_ >::Reconstruct ( const Reconstruct< 8, Float, ghostExchange_ > &  recon)
inline

Definition at line 1604 of file gauge_field_order.h.

Member Function Documentation

◆ getPhase()

template<typename Float , QudaGhostExchange ghostExchange_>
__device__ __host__ real quda::gauge::Reconstruct< 8, Float, ghostExchange_ >::getPhase ( const complex  in[9])
inline

Definition at line 1727 of file gauge_field_order.h.

◆ Pack()

template<typename Float , QudaGhostExchange ghostExchange_>
__device__ __host__ void quda::gauge::Reconstruct< 8, Float, ghostExchange_ >::Pack ( real  out[8],
const complex  in[9],
int  idx 
) const
inline

Definition at line 1620 of file gauge_field_order.h.

◆ Unpack() [1/2]

template<typename Float , QudaGhostExchange ghostExchange_>
template<typename I >
__device__ __host__ void quda::gauge::Reconstruct< 8, Float, ghostExchange_ >::Unpack ( complex  out[9],
const real  in[8],
int  idx,
int  dir,
real  phase,
const I *  X,
const int *  R,
const complex  scale,
const complex  u 
) const
inline

Definition at line 1634 of file gauge_field_order.h.

◆ Unpack() [2/2]

template<typename Float , QudaGhostExchange ghostExchange_>
template<typename I >
__device__ __host__ void quda::gauge::Reconstruct< 8, Float, ghostExchange_ >::Unpack ( complex  out[9],
const real  in[8],
int  idx,
int  dir,
real  phase,
const I *  X,
const int *  R,
const complex  scale = complex(static_cast<real>(1.0), static_cast<real>(1.0)) 
) const
inline

Definition at line 1717 of file gauge_field_order.h.

Member Data Documentation

◆ anisotropy

template<typename Float , QudaGhostExchange ghostExchange_>
const complex quda::gauge::Reconstruct< 8, Float, ghostExchange_ >::anisotropy

Definition at line 1584 of file gauge_field_order.h.

◆ firstTimeSliceBound

template<typename Float , QudaGhostExchange ghostExchange_>
const int quda::gauge::Reconstruct< 8, Float, ghostExchange_ >::firstTimeSliceBound

Definition at line 1586 of file gauge_field_order.h.

◆ ghostExchange

template<typename Float , QudaGhostExchange ghostExchange_>
QudaGhostExchange quda::gauge::Reconstruct< 8, Float, ghostExchange_ >::ghostExchange

Definition at line 1590 of file gauge_field_order.h.

◆ isFirstTimeSlice

template<typename Float , QudaGhostExchange ghostExchange_>
const bool quda::gauge::Reconstruct< 8, Float, ghostExchange_ >::isFirstTimeSlice

Definition at line 1588 of file gauge_field_order.h.

◆ isLastTimeSlice

template<typename Float , QudaGhostExchange ghostExchange_>
const bool quda::gauge::Reconstruct< 8, Float, ghostExchange_ >::isLastTimeSlice

Definition at line 1589 of file gauge_field_order.h.

◆ lastTimeSliceBound

template<typename Float , QudaGhostExchange ghostExchange_>
const int quda::gauge::Reconstruct< 8, Float, ghostExchange_ >::lastTimeSliceBound

Definition at line 1587 of file gauge_field_order.h.

◆ tBoundary

template<typename Float , QudaGhostExchange ghostExchange_>
const complex quda::gauge::Reconstruct< 8, Float, ghostExchange_ >::tBoundary

Definition at line 1585 of file gauge_field_order.h.


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