QUDA
v0.7.0
A library for QCD on GPUs
|
#include <cstdio>
#include <cstdlib>
#include <iostream>
#include <iomanip>
#include <cuda.h>
#include <float_vector.h>
#include <complex_quda.h>
Go to the source code of this file.
Classes | |
struct | quda::ComplexTypeId< T > |
struct | quda::ComplexTypeId< float > |
struct | quda::ComplexTypeId< double > |
struct | quda::RealTypeId< T > |
struct | quda::RealTypeId< float > |
struct | quda::RealTypeId< double > |
struct | quda::RealTypeId< float2 > |
struct | quda::RealTypeId< double2 > |
struct | quda::PromoteTypeId< T, U > |
struct | quda::PromoteTypeId< float2, float > |
struct | quda::PromoteTypeId< float, float2 > |
struct | quda::PromoteTypeId< double2, double > |
struct | quda::PromoteTypeId< double, double2 > |
struct | quda::PromoteTypeId< double, int > |
struct | quda::PromoteTypeId< int, double > |
struct | quda::PromoteTypeId< float, int > |
struct | quda::PromoteTypeId< int, float > |
struct | quda::Zero< T > |
struct | quda::Identity< T > |
class | quda::Matrix< T, N > |
class | quda::Array< T, N > |
Namespaces | |
quda | |
Functions | |
template<class Cmplx > | |
__device__ __host__ Cmplx | quda::makeComplex (const typename RealTypeId< Cmplx >::Type &a, const typename RealTypeId< Cmplx >::Type &b) |
__device__ __host__ double2 | quda::makeComplex (const double &a, const double &b) |
__device__ __host__ float2 | quda::makeComplex (const float &a, const float &b) |
template<class Cmplx > | |
__device__ __host__ Cmplx | quda::operator- (const Cmplx &a) |
template<class Cmplx > | |
__device__ __host__ Cmplx & | quda::operator+= (Cmplx &a, const Cmplx &b) |
template<class Cmplx > | |
__device__ __host__ Cmplx & | quda::operator-= (Cmplx &a, const Cmplx &b) |
template<class Cmplx > | |
__device__ __host__ Cmplx | quda::operator+ (const Cmplx &a, const Cmplx &b) |
template<class Cmplx > | |
__device__ __host__ Cmplx | quda::operator- (const Cmplx &a, const Cmplx &b) |
__device__ __host__ double2 | quda::operator* (const double2 &a, const double &scalar) |
__device__ __host__ float2 | quda::operator* (const float2 &a, const float &scalar) |
template<class Cmplx , class Float > | |
__device__ __host__ Cmplx | quda::operator+ (const Cmplx &a, const Float &scalar) |
template<class Cmplx > | |
__device__ __host__ Cmplx | quda::operator/ (const Cmplx &a, const typename RealTypeId< Cmplx >::Type &scalar) |
template<class Cmplx > | |
__device__ __host__ Cmplx | quda::operator+ (const typename RealTypeId< Cmplx >::Type &scalar, const Cmplx &a) |
template<class Cmplx > | |
__device__ __host__ Cmplx | quda::operator- (const Cmplx &a, const typename RealTypeId< Cmplx >::Type &scalar) |
template<class Cmplx > | |
__device__ __host__ Cmplx | quda::operator- (const typename RealTypeId< Cmplx >::Type &scalar, const Cmplx &a) |
template<class Cmplx > | |
__device__ __host__ Cmplx | quda::operator* (const Cmplx &a, const Cmplx &b) |
template<class Cmplx > | |
__device__ __host__ Cmplx | quda::conj (const Cmplx &a) |
__device__ __host__ double | quda::conj (const double &a) |
__device__ __host__ float | quda::conj (const float &a) |
template<typename Cmplx > | |
__device__ __host__ Cmplx | quda::Conj (const Cmplx &a) |
template<class Cmplx > | |
__device__ __host__ Cmplx | quda::getPreciseInverse (const Cmplx &z) |
std::ostream & | quda::operator<< (std::ostream &os, const float2 &z) |
std::ostream & | quda::operator<< (std::ostream &os, const double2 &z) |
template<int N> | |
__device__ __host__ int | quda::index (int i, int j) |
template<class T > | |
__device__ __host__ T | quda::getTrace (const Matrix< T, 3 > &a) |
template<class T > | |
__device__ __host__ T | quda::getDeterminant (const Matrix< T, 3 > &a) |
template<class T , int N> | |
__device__ __host__ Matrix< T, N > | quda::operator+ (const Matrix< T, N > &a, const Matrix< T, N > &b) |
template<class T , int N> | |
__device__ __host__ Matrix< T, N > | quda::operator+= (Matrix< T, N > &a, const Matrix< T, N > &b) |
template<class T , int N> | |
__device__ __host__ Matrix< T, N > | quda::operator-= (Matrix< T, N > &a, const Matrix< T, N > &b) |
template<class T , int N> | |
__device__ __host__ Matrix< T, N > | quda::operator- (const Matrix< T, N > &a, const Matrix< T, N > &b) |
template<class T , int N, class S > | |
__device__ __host__ Matrix< T, N > | quda::operator* (const S &scalar, const Matrix< T, N > &a) |
template<class T , int N, class S > | |
__device__ __host__ Matrix< T, N > | quda::operator* (const Matrix< T, N > &a, const S &scalar) |
template<class T , int N, class S > | |
__device__ __host__ Matrix< T, N > | quda::operator*= (Matrix< T, N > &a, const S &scalar) |
template<class T , int N> | |
__device__ __host__ Matrix< T, N > | quda::operator- (const Matrix< T, N > &a) |
template<class T > | |
__device__ __host__ Matrix< T, 3 > | quda::operator* (const Matrix< T, 3 > &a, const Matrix< T, 3 > &b) |
template<class T , int N> | |
__device__ __host__ Matrix< T, N > | quda::operator*= (Matrix< T, N > &a, const Matrix< T, N > &b) |
template<class T , class U > | |
__device__ __host__ Matrix < typename PromoteTypeId< T, U > ::Type, 3 > | quda::operator* (const Matrix< T, 3 > &a, const Matrix< U, 3 > &b) |
template<class T > | |
__device__ __host__ Matrix< T, 2 > | quda::operator* (const Matrix< T, 2 > &a, const Matrix< T, 2 > &b) |
template<class T , int N> | |
__device__ __host__ Matrix< T, N > | quda::conj (const Matrix< T, N > &other) |
template<class T > | |
__device__ __host__ void | quda::computeMatrixInverse (const Matrix< T, 3 > &u, Matrix< T, 3 > *uinv) |
template<class T , int N> | |
__device__ __host__ void | quda::setIdentity (Matrix< T, N > *m) |
template<int N> | |
__device__ __host__ void | quda::setIdentity (Matrix< float2, N > *m) |
template<int N> | |
__device__ __host__ void | quda::setIdentity (Matrix< double2, N > *m) |
template<class T , int N> | |
__device__ __host__ void | quda::setZero (Matrix< T, N > *m) |
template<int N> | |
__device__ __host__ void | quda::setZero (Matrix< float2, N > *m) |
template<int N> | |
__device__ __host__ void | quda::setZero (Matrix< double2, N > *m) |
template<class T , int N> | |
__device__ __host__ void | quda::copyColumn (const Matrix< T, N > &m, int c, Array< T, N > *a) |
template<class T , int N> | |
__device__ __host__ void | quda::outerProd (const Array< T, N > &a, const Array< T, N > &b, Matrix< T, N > *m) |
template<class T , int N> | |
__device__ __host__ void | quda::outerProd (const T(&a)[N], const T(&b)[N], Matrix< T, N > *m) |
template<class T , int N> | |
std::ostream & | quda::operator<< (std::ostream &os, const Matrix< T, N > &m) |
template<class T , int N> | |
std::ostream & | quda::operator<< (std::ostream &os, const Array< T, N > &a) |
template<class T > | |
__device__ void | quda::loadLinkVariableFromArray (const T *const array, const int dir, const int idx, const int stride, Matrix< T, 3 > *link) |
template<class T , int N> | |
__device__ void | quda::loadMatrixFromArray (const T *const array, const int idx, const int stride, Matrix< T, N > *mat) |
__device__ void | quda::loadLinkVariableFromArray (const float2 *const array, const int dir, const int idx, const int stride, Matrix< double2, 3 > *link) |
template<class T , int N> | |
__device__ void | quda::writeMatrixToArray (const Matrix< T, N > &mat, const int idx, const int stride, T *const array) |
__device__ void | quda::appendMatrixToArray (const Matrix< double2, 3 > &mat, const int idx, const int stride, double2 *const array) |
__device__ void | quda::appendMatrixToArray (const Matrix< float2, 3 > &mat, const int idx, const int stride, float2 *const array) |
template<class T > | |
__device__ void | quda::writeLinkVariableToArray (const Matrix< T, 3 > &link, const int dir, const int idx, const int stride, T *const array) |
__device__ void | quda::writeLinkVariableToArray (const Matrix< double2, 3 > &link, const int dir, const int idx, const int stride, float2 *const array) |
template<class T > | |
__device__ void | quda::loadMomentumFromArray (const T *const array, const int dir, const int idx, const int stride, Matrix< T, 3 > *mom) |
template<class T , class U > | |
__device__ void | quda::writeMomentumToArray (const Matrix< T, 3 > &mom, const int dir, const int idx, const U coeff, const int stride, T *const array) |
template<class Cmplx > | |
__device__ __host__ void | quda::computeLinkInverse (Matrix< Cmplx, 3 > *uinv, const Matrix< Cmplx, 3 > &u) |
void | quda::copyArrayToLink (Matrix< float2, 3 > *link, float *array) |
template<class Cmplx , class Real > | |
void | quda::copyArrayToLink (Matrix< Cmplx, 3 > *link, Real *array) |
void | quda::copyLinkToArray (float *array, const Matrix< float2, 3 > &link) |
template<class Cmplx , class Real > | |
void | quda::copyLinkToArray (Real *array, const Matrix< Cmplx, 3 > &link) |
template<class Cmplx > | |
__host__ __device__ void | quda::printLink (const Matrix< Cmplx, 3 > &link) |