QUDA  1.0.0
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros
Public Member Functions | Public Attributes | Static Public Attributes | List of all members
quda::gauge::fieldorder_wrapper< Float, storeFloat > Struct Template Reference

fieldorder_wrapper is an internal class that is used to wrap instances of FieldOrder accessors, currying in the specific location on the field. This is used as a helper class for fixed-point accessors providing the necessary conversion and scaling when writing to a fixed-point field. More...

#include <complex_quda.h>

Collaboration diagram for quda::gauge::fieldorder_wrapper< Float, storeFloat >:
Collaboration graph
[legend]

Public Member Functions

__device__ __host__ fieldorder_wrapper (complex< storeFloat > *v, int idx, Float scale, Float scale_inv)
 fieldorder_wrapper constructor More...
 
__device__ __host__ Float real () const
 
__device__ __host__ Float imag () const
 
__device__ __host__ complex< Float > operator- () const
 negation operator More...
 
__device__ __host__ void operator= (const fieldorder_wrapper< Float, storeFloat > &a)
 Assignment operator with fieldorder_wrapper instance as input. More...
 
template<typename theirFloat >
__device__ __host__ void operator= (const complex< theirFloat > &a)
 Assignment operator with complex number instance as input. More...
 
template<typename theirFloat >
__device__ __host__ void operator+= (const complex< theirFloat > &a)
 Operator+= with complex number instance as input. More...
 
template<typename theirFloat >
__device__ __host__ void operator-= (const complex< theirFloat > &a)
 Operator-= with complex number instance as input. More...
 

Public Attributes

complex< storeFloat > * v
 
const int idx
 
const Float scale
 
const Float scale_inv
 

Static Public Attributes

static constexpr bool fixed = fixed_point<Float,storeFloat>()
 

Detailed Description

template<typename Float, typename storeFloat>
struct quda::gauge::fieldorder_wrapper< Float, storeFloat >

fieldorder_wrapper is an internal class that is used to wrap instances of FieldOrder accessors, currying in the specific location on the field. This is used as a helper class for fixed-point accessors providing the necessary conversion and scaling when writing to a fixed-point field.

Definition at line 32 of file complex_quda.h.

Constructor & Destructor Documentation

◆ fieldorder_wrapper()

template<typename Float, typename storeFloat>
__device__ __host__ quda::gauge::fieldorder_wrapper< Float, storeFloat >::fieldorder_wrapper ( complex< storeFloat > *  v,
int  idx,
Float  scale,
Float  scale_inv 
)
inline

fieldorder_wrapper constructor

Parameters
idxField index

Definition at line 246 of file gauge_field_order.h.

Member Function Documentation

◆ imag()

template<typename Float, typename storeFloat>
__device__ __host__ Float quda::gauge::fieldorder_wrapper< Float, storeFloat >::imag ( ) const
inline

◆ operator+=()

template<typename Float, typename storeFloat>
template<typename theirFloat >
__device__ __host__ void quda::gauge::fieldorder_wrapper< Float, storeFloat >::operator+= ( const complex< theirFloat > &  a)
inline

Operator+= with complex number instance as input.

Parameters
aComplex number we want to add to this accessor

Definition at line 299 of file gauge_field_order.h.

◆ operator-()

template<typename Float, typename storeFloat>
__device__ __host__ complex<Float> quda::gauge::fieldorder_wrapper< Float, storeFloat >::operator- ( ) const
inline

negation operator

Returns
negation of this complex number

Definition at line 269 of file gauge_field_order.h.

◆ operator-=()

template<typename Float, typename storeFloat>
template<typename theirFloat >
__device__ __host__ void quda::gauge::fieldorder_wrapper< Float, storeFloat >::operator-= ( const complex< theirFloat > &  a)
inline

Operator-= with complex number instance as input.

Parameters
aComplex number we want to subtract from this accessor

Definition at line 312 of file gauge_field_order.h.

◆ operator=() [1/2]

template<typename Float, typename storeFloat>
__device__ __host__ void quda::gauge::fieldorder_wrapper< Float, storeFloat >::operator= ( const fieldorder_wrapper< Float, storeFloat > &  a)
inline

◆ operator=() [2/2]

template<typename Float, typename storeFloat>
template<typename theirFloat >
__device__ __host__ void quda::gauge::fieldorder_wrapper< Float, storeFloat >::operator= ( const complex< theirFloat > &  a)
inline

Assignment operator with complex number instance as input.

Parameters
aComplex number we want to store in this accessor

Definition at line 286 of file gauge_field_order.h.

◆ real()

template<typename Float, typename storeFloat>
__device__ __host__ Float quda::gauge::fieldorder_wrapper< Float, storeFloat >::real ( ) const
inline

Member Data Documentation

◆ fixed

template<typename Float, typename storeFloat>
constexpr bool quda::gauge::fieldorder_wrapper< Float, storeFloat >::fixed = fixed_point<Float,storeFloat>()
static

Definition at line 240 of file gauge_field_order.h.

◆ idx

template<typename Float, typename storeFloat>
const int quda::gauge::fieldorder_wrapper< Float, storeFloat >::idx

◆ scale

template<typename Float, typename storeFloat>
const Float quda::gauge::fieldorder_wrapper< Float, storeFloat >::scale

Definition at line 238 of file gauge_field_order.h.

◆ scale_inv

template<typename Float, typename storeFloat>
const Float quda::gauge::fieldorder_wrapper< Float, storeFloat >::scale_inv

Definition at line 239 of file gauge_field_order.h.

◆ v

template<typename Float, typename storeFloat>
complex<storeFloat>* quda::gauge::fieldorder_wrapper< Float, storeFloat >::v

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