QUDA v0.4.0
A library for QCD on GPUs
|
#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) |