QUDA  0.9.0
Classes | Namespaces | Macros | Functions
register_traits.h File Reference

Provides precision abstractions and defines the register precision given the storage precision using C++ traits. More...

#include <quda_internal.h>
#include <generics/ldg.h>
#include <complex_quda.h>
#include <inline_ptx.h>
Include dependency graph for register_traits.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

struct  quda::PromoteTypeId< T, U >
 
struct  quda::PromoteTypeId< complex< float >, float >
 
struct  quda::PromoteTypeId< float, complex< float > >
 
struct  quda::PromoteTypeId< complex< double >, double >
 
struct  quda::PromoteTypeId< double, complex< double > >
 
struct  quda::PromoteTypeId< double, int >
 
struct  quda::PromoteTypeId< int, double >
 
struct  quda::PromoteTypeId< float, int >
 
struct  quda::PromoteTypeId< int, float >
 
struct  quda::PromoteTypeId< double, float >
 
struct  quda::PromoteTypeId< float, double >
 
struct  quda::mapper< typename >
 
struct  quda::mapper< double >
 
struct  quda::mapper< float >
 
struct  quda::mapper< short >
 
struct  quda::mapper< double2 >
 
struct  quda::mapper< float2 >
 
struct  quda::mapper< short2 >
 
struct  quda::mapper< double4 >
 
struct  quda::mapper< float4 >
 
struct  quda::mapper< short4 >
 
struct  quda::bridge_mapper< typename, typename >
 
struct  quda::bridge_mapper< double2, double2 >
 
struct  quda::bridge_mapper< double2, float2 >
 
struct  quda::bridge_mapper< double2, short2 >
 
struct  quda::bridge_mapper< double2, float4 >
 
struct  quda::bridge_mapper< double2, short4 >
 
struct  quda::bridge_mapper< float4, double2 >
 
struct  quda::bridge_mapper< float4, float4 >
 
struct  quda::bridge_mapper< float4, short4 >
 
struct  quda::bridge_mapper< float2, double2 >
 
struct  quda::bridge_mapper< float2, float2 >
 
struct  quda::bridge_mapper< float2, short2 >
 
struct  quda::vec_length< typename >
 
struct  quda::vec_length< double4 >
 
struct  quda::vec_length< double2 >
 
struct  quda::vec_length< double >
 
struct  quda::vec_length< float4 >
 
struct  quda::vec_length< float2 >
 
struct  quda::vec_length< float >
 
struct  quda::vec_length< short4 >
 
struct  quda::vec_length< short2 >
 
struct  quda::vec_length< short >
 
struct  quda::vector< typename, N >
 
struct  quda::vector< double, 2 >
 
struct  quda::vector< float, 2 >
 
struct  quda::scalar< typename >
 
struct  quda::scalar< double4 >
 
struct  quda::scalar< double3 >
 
struct  quda::scalar< double2 >
 
struct  quda::scalar< double >
 
struct  quda::scalar< float4 >
 
struct  quda::scalar< float3 >
 
struct  quda::scalar< float2 >
 
struct  quda::scalar< float >
 
struct  quda::scalar< short4 >
 
struct  quda::scalar< short3 >
 
struct  quda::scalar< short2 >
 
struct  quda::scalar< short >
 
struct  quda::isHalf< T >
 
struct  quda::isHalf< short >
 
struct  quda::isHalf< short2 >
 
struct  quda::isHalf< short4 >
 
struct  quda::Trig< isHalf, T >
 
struct  quda::Trig< false, float >
 
struct  quda::Trig< true, float >
 
struct  quda::VectorType< Float, number >
 
struct  quda::VectorType< double, 1 >
 
struct  quda::VectorType< double, 2 >
 
struct  quda::VectorType< double, 4 >
 
struct  quda::VectorType< float, 1 >
 
struct  quda::VectorType< float, 2 >
 
struct  quda::VectorType< float, 4 >
 
struct  quda::VectorType< short, 1 >
 
struct  quda::VectorType< short, 2 >
 
struct  quda::VectorType< short, 4 >
 
struct  quda::TexVectorType< Float, number >
 
struct  quda::TexVectorType< double, 1 >
 
struct  quda::TexVectorType< double, 2 >
 
struct  quda::TexVectorType< float, 1 >
 
struct  quda::TexVectorType< float, 2 >
 
struct  quda::TexVectorType< float, 4 >
 
struct  quda::TexVectorType< short, 1 >
 
struct  quda::TexVectorType< short, 2 >
 
struct  quda::TexVectorType< short, 4 >
 
struct  quda::AllocType< large_alloc >
 
struct  quda::AllocType< true >
 
struct  quda::AllocType< false >
 

Namespaces

 quda
 

Macros

#define MAX_SHORT_INV   3.051850948e-5
 
#define USE_LDG
 

Functions

template<typename T1 , typename T2 >
__host__ __device__ void quda::copy (T1 &a, const T2 &b)
 
template<>
__host__ __device__ void quda::copy (double &a, const int2 &b)
 
template<>
__host__ __device__ void quda::copy (double2 &a, const int4 &b)
 
static __host__ __device__ float quda::s2f (const short &a)
 
static __host__ __device__ double quda::s2d (const short &a)
 
__device__ __host__ int quda::f2i (float f)
 
__device__ __host__ int quda::d2i (double d)
 
template<>
__host__ __device__ void quda::copy (float &a, const short &b)
 
template<>
__host__ __device__ void quda::copy (short &a, const float &b)
 
template<>
__host__ __device__ void quda::copy (float2 &a, const short2 &b)
 
template<>
__host__ __device__ void quda::copy (short2 &a, const float2 &b)
 
template<>
__host__ __device__ void quda::copy (float4 &a, const short4 &b)
 
template<>
__host__ __device__ void quda::copy (short4 &a, const float4 &b)
 
template<typename VectorType >
__device__ __host__ VectorType quda::vector_load (void *ptr, int idx)
 
template<typename VectorType >
__device__ __host__ void quda::vector_store (void *ptr, int idx, const VectorType &value)
 
template<>
__device__ __host__ void quda::vector_store (void *ptr, int idx, const double2 &value)
 
template<>
__device__ __host__ void quda::vector_store (void *ptr, int idx, const float4 &value)
 
template<>
__device__ __host__ void quda::vector_store (void *ptr, int idx, const float2 &value)
 
template<>
__device__ __host__ void quda::vector_store (void *ptr, int idx, const short4 &value)
 
template<>
__device__ __host__ void quda::vector_store (void *ptr, int idx, const short2 &value)
 

Detailed Description

Provides precision abstractions and defines the register precision given the storage precision using C++ traits.

Definition in file register_traits.h.

Macro Definition Documentation

◆ MAX_SHORT_INV

#define MAX_SHORT_INV   3.051850948e-5

Definition at line 133 of file register_traits.h.

Referenced by quda::s2d(), and quda::s2f().

◆ USE_LDG

#define USE_LDG