4 #define FINE_GRAINED_ACCESS 11 using namespace gauge;
14 template <
typename storeFloat,
int Nc>
18 constexpr
int length = 2*Nc*Nc;
25 #ifdef FINE_GRAINED_ACCESS 27 extractGhost<Float,length>(G(const_cast<GaugeField&>(u), 0, (
void**)Ghost), u, location, extract, offset);
30 extractGhost<Float,length>(G(u, 0, Ghost), u, location, extract, offset);
35 #ifdef BUILD_QDP_INTERFACE 36 #ifdef FINE_GRAINED_ACCESS 38 extractGhost<Float,length>(G(const_cast<GaugeField&>(u), 0, (
void**)Ghost), u, location, extract, offset);
43 errorQuda(
"QDP interface has not been built\n");
53 template <
typename Float>
63 extractGhostMG<Float, 12>(u, Ghost, extract, offset);
64 }
else if (u.
Ncolor() == 32) {
65 extractGhostMG<Float, 32>(u, Ghost, extract, offset);
66 }
else if (u.
Ncolor() == 48) {
67 extractGhostMG<Float, 48>(u, Ghost, extract, offset);
68 }
else if (u.
Ncolor() == 64) {
69 extractGhostMG<Float, 64>(u, Ghost, extract, offset);
77 #ifndef FINE_GRAINED_ACCESS 82 #ifdef GPU_MULTIGRID_DOUBLE 85 errorQuda(
"Double precision multigrid has not been enabled");
QudaLinkType LinkType() const
Main header file for host and device accessors to GaugeFields.
enum QudaFieldLocation_s QudaFieldLocation
QudaReconstructType Reconstruct() const
void extractGaugeGhostMG(const GaugeField &u, void **ghost, bool extract, int offset)
QudaGaugeFieldOrder Order() const
void extractGhostMG(const GaugeField &u, storeFloat **Ghost, bool extract, int offset)
QudaPrecision Precision() const