QUDA  v1.1.0
A library for QCD on GPUs
Classes | Namespaces | Functions
instantiate.h File Reference
#include <array>
#include <enum_quda.h>
#include <util_quda.h>

Go to the source code of this file.

Classes

struct  quda::ReconstructFull
 
struct  quda::ReconstructWilson
 
struct  quda::ReconstructStaggered
 
struct  quda::ReconstructNo12
 
struct  quda::ReconstructNone
 
struct  quda::ReconstructMom
 
struct  quda::Reconstruct10
 
struct  quda::instantiateApply< enabled, Apply, Float, nColor, recon, G, Args >
 This class instantiates the Apply class based on the instantiated templates below. More...
 
struct  quda::instantiateApply< false, Apply, Float, nColor, recon, G, Args... >
 This class is a specialization which does not instantiate the Apply class if the is_enabled has evaluated to false. More...
 
struct  quda::instantiateReconstruct< Apply, Float, nColor, Recon, i, G, Args >
 Instantiate the reconstruction template at index i and recurse to prior element. More...
 
struct  quda::instantiateReconstruct< Apply, Float, nColor, Recon, 0, G, Args... >
 Termination specialization of instantiateReconstruct. More...
 
struct  quda::WilsonReconstruct
 
struct  quda::StaggeredReconstruct
 

Namespaces

 quda
 

Functions

template<QudaReconstructType recon>
constexpr bool quda::is_enabled ()
 
template<>
constexpr bool quda::is_enabled< QUDA_RECONSTRUCT_NO > ()
 
template<>
constexpr bool quda::is_enabled< QUDA_RECONSTRUCT_13 > ()
 
template<>
constexpr bool quda::is_enabled< QUDA_RECONSTRUCT_12 > ()
 
template<>
constexpr bool quda::is_enabled< QUDA_RECONSTRUCT_9 > ()
 
template<>
constexpr bool quda::is_enabled< QUDA_RECONSTRUCT_8 > ()
 
template<template< typename, int, QudaReconstructType > class Apply, typename Recon , typename Float , typename G , typename... Args>
constexpr void quda::instantiate (G &U, Args &&... args)
 This instantiate function is used to instantiate the colors. More...
 
template<template< typename, int, QudaReconstructType > class Apply, typename Recon = ReconstructFull, typename G , typename... Args>
constexpr void quda::instantiate (G &U, Args &&... args)
 This instantiate function is used to instantiate the precisions. More...
 
template<template< typename > class Apply, typename C , typename... Args>
constexpr void quda::instantiate (C &c, Args &&... args)
 This instantiate function is used to instantiate the clover precision. More...
 
template<template< typename, int > class Apply, typename store_t , typename F , typename... Args>
constexpr void quda::instantiate (F &field, Args &&... args)
 This instantiate function is used to instantiate the colors. More...
 
template<template< typename, int > class Apply, typename F , typename... Args>
constexpr void quda::instantiate (F &field, Args &&... args)
 This instantiate function is used to instantiate the precision and number of colors. More...
 
template<template< typename > class Apply, typename F , typename... Args>
constexpr void quda::instantiatePrecision (F &field, Args &&... args)
 The instantiatePrecision function is used to instantiate the precision. Note unlike the "instantiate" functions above, this helper always instantiates double precision regardless of the QUDA_PRECISION value: this enables its use for copy interface routines which should always enable double precision support. More...
 
template<template< typename, typename > class Apply, typename T , typename F , typename... Args>
constexpr void quda::instantiatePrecision2 (F &field, Args &&... args)
 The instantiatePrecision2 function is used to instantiate the precision for a class that accepts 2 typename arguments, with the first typename corresponding to the precision being instantiated at hand. This is useful for copy routines, where we need to instantiate a second, e.g., destination, precision after already instantiating the first, e.g., source, precision. Similar to the "instantiatePrecision" function above, this helper always instantiates double precision regardless of the QUDA_PRECISION value: this enables its use for copy interface routines which should always enable double precision support. More...
 
template<template< typename > class Apply, typename F , typename... Args>
constexpr void quda::instantiatePrecisionMG (F &field, Args &&... args)
 The instantiatePrecision function is used to instantiate the precision. More...