QUDA v0.4.0
A library for QCD on GPUs
Functions
quda/include/convert.h File Reference

Go to the source code of this file.

Functions

template<typename type >
int vecLength ()
template<>
int vecLength< short > ()
template<>
int vecLength< float > ()
template<>
int vecLength< double > ()
template<>
int vecLength< short2 > ()
template<>
int vecLength< float2 > ()
template<>
int vecLength< double2 > ()
template<>
int vecLength< short4 > ()
template<>
int vecLength< float4 > ()
template<>
int vecLength< double4 > ()
__device__ void copyFloatN (float2 &a, const float2 &b)
__device__ void copyFloatN (double2 &a, const double2 &b)
__device__ void copyFloatN (float4 &a, const float4 &b)
__device__ void copyFloatN (double4 &a, const double4 &b)
__device__ void copyFloatN (float2 &a, const double2 &b)
__device__ void copyFloatN (double2 &a, const float2 &b)
__device__ void copyFloatN (float4 &a, const double4 &b)
__device__ void copyFloatN (double4 &a, const float4 &b)
template<typename OutputType , typename InputType >
__device__ void convert (OutputType x[], InputType y[], const int N)
template<>
__device__ void convert< float2, short2 > (float2 x[], short2 y[], const int N)
template<>
__device__ void convert< float4, short4 > (float4 x[], short4 y[], const int N)
template<>
__device__ void convert< double4, double2 > (double4 x[], double2 y[], const int N)
template<>
__device__ void convert< double2, double4 > (double2 x[], double4 y[], const int N)
template<>
__device__ void convert< float4, float2 > (float4 x[], float2 y[], const int N)
template<>
__device__ void convert< float2, float4 > (float2 x[], float4 y[], const int N)
template<>
__device__ void convert< short4, float2 > (short4 x[], float2 y[], const int N)
template<>
__device__ void convert< float2, short4 > (float2 x[], short4 y[], const int N)
template<>
__device__ void convert< float4, short2 > (float4 x[], short2 y[], const int N)
template<>
__device__ void convert< short2, float4 > (short2 x[], float4 y[], const int N)
template<>
__device__ void convert< short4, double2 > (short4 x[], double2 y[], const int N)
template<>
__device__ void convert< double2, short4 > (double2 x[], short4 y[], const int N)
template<>
__device__ void convert< double4, short2 > (double4 x[], short2 y[], const int N)
template<>
__device__ void convert< short2, double4 > (short2 x[], double4 y[], const int N)
template<>
__device__ void convert< float4, double2 > (float4 x[], double2 y[], const int N)
template<>
__device__ void convert< double2, float4 > (double2 x[], float4 y[], const int N)
template<>
__device__ void convert< double4, float2 > (double4 x[], float2 y[], const int N)
template<>
__device__ void convert< float2, double4 > (float2 x[], double4 y[], const int N)

Detailed Description

Author:
M Clark

DESCRIPTION

Conversion functions that are used as building blocking for arbitrary field and register ordering.

Definition in file convert.h.


Function Documentation

template<typename OutputType , typename InputType >
__device__ void convert ( OutputType  x[],
InputType  y[],
const int  N 
) [inline]

Convert a vector of type InputType to type OutputType.

The main current limitation is that there is an implicit asumption that N * sizeof(OutputType) / sizeof(InputType) is an integer. E.g., you can convert a vector 9 float2s into a vector of 5 float4s.

Parameters:
xOutput vector.
yInput vector.
NLength of output vector.

Definition at line 49 of file convert.h.

template<>
__device__ void convert< double2, double4 > ( double2  x[],
double4  y[],
const int  N 
) [inline]

Definition at line 72 of file convert.h.

template<>
__device__ void convert< double2, float4 > ( double2  x[],
float4  y[],
const int  N 
) [inline]

Definition at line 150 of file convert.h.

template<>
__device__ void convert< double2, short4 > ( double2  x[],
short4  y[],
const int  N 
) [inline]

Definition at line 124 of file convert.h.

template<>
__device__ void convert< double4, double2 > ( double4  x[],
double2  y[],
const int  N 
) [inline]

Definition at line 67 of file convert.h.

template<>
__device__ void convert< double4, float2 > ( double4  x[],
float2  y[],
const int  N 
) [inline]

Definition at line 158 of file convert.h.

template<>
__device__ void convert< double4, short2 > ( double4  x[],
short2  y[],
const int  N 
) [inline]

Definition at line 132 of file convert.h.

template<>
__device__ void convert< float2, double4 > ( float2  x[],
double4  y[],
const int  N 
) [inline]

Definition at line 163 of file convert.h.

template<>
__device__ void convert< float2, float4 > ( float2  x[],
float4  y[],
const int  N 
) [inline]

Definition at line 85 of file convert.h.

template<>
__device__ void convert< float2, short2 > ( float2  x[],
short2  y[],
const int  N 
) [inline]

Definition at line 55 of file convert.h.

template<>
__device__ void convert< float2, short4 > ( float2  x[],
short4  y[],
const int  N 
) [inline]

Definition at line 98 of file convert.h.

template<>
__device__ void convert< float4, double2 > ( float4  x[],
double2  y[],
const int  N 
) [inline]

Definition at line 145 of file convert.h.

template<>
__device__ void convert< float4, float2 > ( float4  x[],
float2  y[],
const int  N 
) [inline]

Definition at line 80 of file convert.h.

template<>
__device__ void convert< float4, short2 > ( float4  x[],
short2  y[],
const int  N 
) [inline]

Definition at line 106 of file convert.h.

template<>
__device__ void convert< float4, short4 > ( float4  x[],
short4  y[],
const int  N 
) [inline]

Definition at line 60 of file convert.h.

template<>
__device__ void convert< short2, double4 > ( short2  x[],
double4  y[],
const int  N 
) [inline]

Definition at line 137 of file convert.h.

template<>
__device__ void convert< short2, float4 > ( short2  x[],
float4  y[],
const int  N 
) [inline]

Definition at line 111 of file convert.h.

template<>
__device__ void convert< short4, double2 > ( short4  x[],
double2  y[],
const int  N 
) [inline]

Definition at line 119 of file convert.h.

template<>
__device__ void convert< short4, float2 > ( short4  x[],
float2  y[],
const int  N 
) [inline]

Definition at line 93 of file convert.h.

__device__ void copyFloatN ( double4 &  a,
const float4 &  b 
) [inline]

Definition at line 35 of file convert.h.

__device__ void copyFloatN ( double4 &  a,
const double4 &  b 
) [inline]

Definition at line 30 of file convert.h.

__device__ void copyFloatN ( double2 &  a,
const float2 &  b 
) [inline]

Definition at line 33 of file convert.h.

__device__ void copyFloatN ( float4 &  a,
const double4 &  b 
) [inline]

Definition at line 34 of file convert.h.

__device__ void copyFloatN ( float2 &  a,
const float2 &  b 
) [inline]

Definition at line 26 of file convert.h.

__device__ void copyFloatN ( double2 &  a,
const double2 &  b 
) [inline]

Definition at line 27 of file convert.h.

__device__ void copyFloatN ( float2 &  a,
const double2 &  b 
) [inline]

Definition at line 32 of file convert.h.

__device__ void copyFloatN ( float4 &  a,
const float4 &  b 
) [inline]

Definition at line 29 of file convert.h.

template<typename type >
int vecLength ( )

Definition at line 12 of file convert.h.

template<>
int vecLength< double > ( )

Definition at line 16 of file convert.h.

template<>
int vecLength< double2 > ( )

Definition at line 20 of file convert.h.

template<>
int vecLength< double4 > ( )

Definition at line 24 of file convert.h.

template<>
int vecLength< float > ( )

Definition at line 15 of file convert.h.

template<>
int vecLength< float2 > ( )

Definition at line 19 of file convert.h.

template<>
int vecLength< float4 > ( )

Definition at line 23 of file convert.h.

template<>
int vecLength< short > ( )

Definition at line 14 of file convert.h.

template<>
int vecLength< short2 > ( )

Definition at line 18 of file convert.h.

template<>
int vecLength< short4 > ( )

Definition at line 22 of file convert.h.

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines