QUDA v0.4.0
A library for QCD on GPUs
Classes | Namespaces | Functions
quda/lib/quda_matrix.h File Reference
#include <cstdio>
#include <cstdlib>
#include <iostream>
#include <iomanip>
#include <cuda.h>

Go to the source code of this file.

Classes

struct  hisq::ComplexTypeId< float >
struct  hisq::ComplexTypeId< double >
struct  hisq::RealTypeId< float2 >
struct  hisq::RealTypeId< double2 >
struct  hisq::PromoteTypeId< T, U >
struct  hisq::PromoteTypeId< float2, float >
struct  hisq::PromoteTypeId< float, float2 >
struct  hisq::PromoteTypeId< double2, double >
struct  hisq::PromoteTypeId< double, double2 >
struct  hisq::PromoteTypeId< double, int >
struct  hisq::PromoteTypeId< int, double >
struct  hisq::PromoteTypeId< float, int >
struct  hisq::PromoteTypeId< int, float >
struct  hisq::Zero< T >
struct  hisq::Identity< T >
class  hisq::Matrix< T, N >
class  hisq::Array< T, N >

Namespaces

namespace  hisq

Functions

template<class Cmplx >
__device__ __host__ Cmplx hisq::makeComplex (const typename RealTypeId< Cmplx >::Type &a, const typename RealTypeId< Cmplx >::Type &b)
__device__ __host__ double2 hisq::makeComplex (const double &a, const double &b)
__device__ __host__ float2 hisq::makeComplex (const float &a, const float &b)
template<class Cmplx >
__device__ __host__ Cmplx hisq::operator+ (const Cmplx &a, const Cmplx &b)
template<class Cmplx >
__device__ __host__ Cmplx hisq::operator- (const Cmplx &a, const Cmplx &b)
template<class Cmplx >
__device__ __host__ Cmplx hisq::operator* (const Cmplx &a, const typename RealTypeId< Cmplx >::Type &scalar)
template<class Cmplx >
__device__ __host__ Cmplx hisq::operator/ (const Cmplx &a, const typename RealTypeId< Cmplx >::Type &scalar)
template<class Cmplx >
__device__ __host__ Cmplx hisq::operator+ (const Cmplx &a, const typename RealTypeId< Cmplx >::Type &scalar)
template<class Cmplx >
__device__ __host__ Cmplx hisq::operator+ (const typename RealTypeId< Cmplx >::Type &scalar, const Cmplx &a)
template<class Cmplx >
__device__ __host__ Cmplx hisq::operator- (const Cmplx &a, const typename RealTypeId< Cmplx >::Type &scalar)
template<class Cmplx >
__device__ __host__ Cmplx hisq::operator- (const typename RealTypeId< Cmplx >::Type &scalar, const Cmplx &a)
template<class Cmplx >
__device__ __host__ Cmplx hisq::operator* (const typename RealTypeId< Cmplx >::Type &scalar, const Cmplx &b)
template<class Cmplx >
__device__ __host__ Cmplx hisq::operator* (const Cmplx &a, const Cmplx &b)
template<class Cmplx >
__device__ __host__ Cmplx hisq::conj (const Cmplx &a)
__device__ __host__ double hisq::conj (const double &a)
__device__ __host__ float hisq::conj (const float &a)
template<class Cmplx >
__device__ __host__ Cmplx hisq::getPreciseInverse (const Cmplx &z)
std::ostream & hisq::operator<< (std::ostream &os, const float2 &z)
std::ostream & hisq::operator<< (std::ostream &os, const double2 &z)
template<int N>
__device__ __host__ int hisq::index (int i, int j)
template<class T >
__device__ __host__ T hisq::getTrace (const Matrix< T, 3 > &a)
template<class T >
__device__ __host__ T hisq::getDeterminant (const Matrix< T, 3 > &a)
template<class T , int N>
__device__ __host__ Matrix< T, N > hisq::operator+ (const Matrix< T, N > &a, const Matrix< T, N > &b)
template<class T , int N>
__device__ __host__ Matrix< T, N > hisq::operator- (const Matrix< T, N > &a, const Matrix< T, N > &b)
template<class T , int N, class S >
__device__ __host__ Matrix< T, N > hisq::operator* (const S &scalar, const Matrix< T, N > &a)
template<class T , int N, class S >
__device__ __host__ Matrix< T, N > hisq::operator* (const Matrix< T, N > &a, const S &scalar)
template<class T >
__device__ __host__ Matrix< T, 3 > hisq::operator* (const Matrix< T, 3 > &a, const Matrix< T, 3 > &b)
template<class T , class U >
__device__ __host__ Matrix
< typename PromoteTypeId< T, U >
::Type, 3 > 
hisq::operator* (const Matrix< T, 3 > &a, const Matrix< U, 3 > &b)
template<class T >
__device__ __host__ Matrix< T, 2 > hisq::operator* (const Matrix< T, 2 > &a, const Matrix< T, 2 > &b)
template<class T , int N>
__device__ __host__ Matrix< T, N > hisq::conj (const Matrix< T, N > &other)
template<class T >
__device__ __host__ void hisq::computeMatrixInverse (const Matrix< T, 3 > &u, Matrix< T, 3 > *uinv)
template<class T , int N>
__device__ __host__ void hisq::setIdentity (Matrix< T, N > *m)
template<int N>
__device__ __host__ void hisq::setIdentity (Matrix< float2, N > *m)
template<int N>
__device__ __host__ void hisq::setIdentity (Matrix< double2, N > *m)
template<class T , int N>
__device__ __host__ void hisq::setZero (Matrix< T, N > *m)
template<int N>
__device__ __host__ void hisq::setZero (Matrix< float2, N > *m)
template<int N>
__device__ __host__ void hisq::setZero (Matrix< double2, N > *m)
template<class T , int N>
__device__ __host__ void hisq::copyColumn (const Matrix< T, N > &m, int c, Array< T, N > *a)
template<class T , int N>
__device__ __host__ void hisq::outerProd (const Array< T, N > &a, const Array< T, N > &b, Matrix< T, N > *m)
template<class T , int N>
std::ostream & hisq::operator<< (std::ostream &os, const Matrix< T, N > &m)
template<class T , int N>
std::ostream & hisq::operator<< (std::ostream &os, const Array< T, N > &a)
template<class T >
__device__ void hisq::loadLinkVariableFromArray (const T *const array, int dir, int idx, int stride, Matrix< T, 3 > *link)
__device__ void hisq::loadLinkVariableFromArray (const float2 *const array, int dir, int idx, int stride, Matrix< double2, 3 > *link)
template<class T >
__device__ void hisq::writeLinkVariableToArray (const Matrix< T, 3 > &link, int dir, int idx, int stride, T *const array)
__device__ void hisq::writeLinkVariableToArray (const Matrix< double2, 3 > &link, int dir, int idx, int stride, float2 *const array)
template<class Cmplx >
__device__ __host__ void hisq::computeLinkInverse (Matrix< Cmplx, 3 > *uinv, const Matrix< Cmplx, 3 > &u)
void hisq::copyArrayToLink (Matrix< float2, 3 > *link, float *array)
template<class Cmplx , class Real >
void hisq::copyArrayToLink (Matrix< Cmplx, 3 > *link, Real *array)
void hisq::copyLinkToArray (float *array, const Matrix< float2, 3 > &link)
template<class Cmplx , class Real >
void hisq::copyLinkToArray (Real *array, const Matrix< Cmplx, 3 > &link)
template<class Cmplx >
__host__ __device__ void hisq::printLink (const Matrix< Cmplx, 3 > &link)
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines