QUDA  v1.1.0
A library for QCD on GPUs
Classes | Namespaces | Functions
color_spinor.h File Reference
#include <complex_quda.h>
#include <quda_matrix.h>

Go to the source code of this file.

Classes

struct  quda::ColorSpinor< Float, Nc, Ns >
 
struct  quda::ColorSpinor< Float, Nc, 4 >
 
struct  quda::ColorSpinor< Float, Nc, 2 >
 

Namespaces

 quda
 

Functions

template<typename Float , int Nc, int Ns>
__device__ __host__ complex< Float > quda::innerProduct (const ColorSpinor< Float, Nc, Ns > &a, const ColorSpinor< Float, Nc, Ns > &b)
 Compute the inner product over color and spin dot = \sum_s,c conj(a(s,c)) * b(s,c) More...
 
template<typename Float , int Nc, int Ns>
__device__ __host__ complex< Float > quda::colorContract (const ColorSpinor< Float, Nc, Ns > &a, const ColorSpinor< Float, Nc, Ns > &b, int sa, int sb)
 Compute the color contraction over color at spin s dot = \sum_s,c a(s,c) * b(s,c) More...
 
template<typename Float , int Nc, int Ns>
__device__ __host__ complex< Float > quda::innerProduct (const ColorSpinor< Float, Nc, Ns > &a, const ColorSpinor< Float, Nc, Ns > &b, int s)
 
template<typename Float , int Nc, int Ns>
__device__ __host__ complex< Float > quda::innerProduct (const ColorSpinor< Float, Nc, Ns > &a, const ColorSpinor< Float, Nc, Ns > &b, int sa, int sb)
 
template<typename Float , int Nc, int Nsa, int Nsb>
__device__ __host__ complex< Float > quda::innerProduct (const ColorSpinor< Float, Nc, Nsa > &a, const ColorSpinor< Float, Nc, Nsb > &b, int sa, int sb)
 Compute the inner product over color at spin sa and sb between a color spinors a and b of different spin length dot = \sum_c conj(a(c)) * b(s,c) More...
 
template<typename Float , int Ns>
__device__ __host__ ColorSpinor< Float, 3, 1 > quda::crossProduct (const ColorSpinor< Float, 3, Ns > &a, const ColorSpinor< Float, 3, Ns > &b, int sa, int sb)
 
template<typename Float , int Nc, int Ns>
__device__ __host__ Matrix< complex< Float >, Nc > quda::outerProdSpinTrace (const ColorSpinor< Float, Nc, Ns > &a, const ColorSpinor< Float, Nc, Ns > &b)
 
template<typename Float , int Nc>
__device__ __host__ Matrix< complex< Float >, Nc > quda::outerProduct (const ColorSpinor< Float, Nc, 1 > &a, const ColorSpinor< Float, Nc, 1 > &b)
 
template<typename Float , int Nc, int Ns>
__device__ __host__ ColorSpinor< Float, Nc, Ns > quda::operator+ (const ColorSpinor< Float, Nc, Ns > &x, const ColorSpinor< Float, Nc, Ns > &y)
 ColorSpinor addition operator. More...
 
template<typename Float , int Nc, int Ns>
__device__ __host__ ColorSpinor< Float, Nc, Ns > quda::operator- (const ColorSpinor< Float, Nc, Ns > &x, const ColorSpinor< Float, Nc, Ns > &y)
 ColorSpinor subtraction operator. More...
 
template<typename Float , int Nc, int Ns, typename S >
__device__ __host__ ColorSpinor< Float, Nc, Ns > quda::operator* (const S &a, const ColorSpinor< Float, Nc, Ns > &x)
 Compute the scalar-vector product y = a * x. More...
 
template<typename Float , int Nc, int Ns>
__device__ __host__ ColorSpinor< Float, Nc, Ns > quda::operator* (const Matrix< complex< Float >, Nc > &A, const ColorSpinor< Float, Nc, Ns > &x)
 Compute the matrix-vector product y = A * x. More...
 
template<typename Float , int Nc, int Ns>
__device__ __host__ ColorSpinor< Float, Nc, Ns > quda::mv_add (const Matrix< complex< Float >, Nc > &A, const ColorSpinor< Float, Nc, Ns > &x, const ColorSpinor< Float, Nc, Ns > &y)
 Compute the matrix-vector product z = A * x + y. More...
 
template<typename Float , int Nc, int Ns>
__device__ __host__ ColorSpinor< Float, Nc, Ns > quda::operator* (const HMatrix< Float, Nc *Ns > &A, const ColorSpinor< Float, Nc, Ns > &x)
 Compute the matrix-vector product y = A * x. More...
 

Detailed Description

Description

The header file defines some helper structs for dealing with ColorSpinors (e.g., a vector with both color and spin degrees of freedom).

Definition in file color_spinor.h.