QUDA  v0.7.0
A library for QCD on GPUs
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
Macros | Functions
svd_quda.h File Reference

Go to the source code of this file.

Macros

#define DEVICEHOST   __device__ __host__
 
#define SVDPREC   1e-11
 
#define LOG2   0.69314718055994530942
 

Functions

template<class Cmplx >
DEVICEHOST RealTypeId< Cmplx >
::Type 
cabs (const Cmplx &z)
 
template<class T , class U >
DEVICEHOST PromoteTypeId< T, U >
::Type 
quadSum (const T &a, const U &b)
 
DEVICEHOST float getNorm (const Array< float2, 3 > &a)
 
DEVICEHOST double getNorm (const Array< double2, 3 > &a)
 
template<class T >
DEVICEHOST void constructHHMat (const T &tau, const Array< T, 3 > &v, Matrix< T, 3 > &hh)
 
template<class Real >
DEVICEHOST void getLambdaMax (const Matrix< Real, 3 > &b, Real &lambda_max)
 
template<class Real >
DEVICEHOST void getGivensRotation (const Real &alpha, const Real &beta, Real &c, Real &s)
 
template<class Real >
DEVICEHOST void accumGivensRotation (int index, const Real &c, const Real &s, Matrix< Real, 3 > &m)
 
template<class Real >
DEVICEHOST void assignGivensRotation (const Real &c, const Real &s, Matrix< Real, 2 > &m)
 
template<class Real >
DEVICEHOST void swap (Real &a, Real &b)
 
template<class Real >
DEVICEHOST void smallSVD (Matrix< Real, 2 > &u, Matrix< Real, 2 > &v, Matrix< Real, 2 > &m)
 
template<class Cmplx >
DEVICEHOST void getRealBidiagMatrix (const Matrix< Cmplx, 3 > &mat, Matrix< Cmplx, 3 > &u, Matrix< Cmplx, 3 > &v)
 
template<class Real >
DEVICEHOST void bdSVD (Matrix< Real, 3 > &u, Matrix< Real, 3 > &v, Matrix< Real, 3 > &b, int max_it)
 
template<class Cmplx >
DEVICEHOST void computeSVD (const Matrix< Cmplx, 3 > &m, Matrix< Cmplx, 3 > &u, Matrix< Cmplx, 3 > &v, typename RealTypeId< Cmplx >::Type singular_values[3])
 

Macro Definition Documentation

#define DEVICEHOST   __device__ __host__

Definition at line 4 of file svd_quda.h.

#define LOG2   0.69314718055994530942

Definition at line 6 of file svd_quda.h.

#define SVDPREC   1e-11

Definition at line 5 of file svd_quda.h.

Function Documentation

template<class Real >
DEVICEHOST void accumGivensRotation ( int  index,
const Real &  c,
const Real &  s,
Matrix< Real, 3 > &  m 
)
inline

Definition at line 129 of file svd_quda.h.

template<class Real >
DEVICEHOST void assignGivensRotation ( const Real &  c,
const Real &  s,
Matrix< Real, 2 > &  m 
)
inline

Definition at line 143 of file svd_quda.h.

template<class Real >
DEVICEHOST void bdSVD ( Matrix< Real, 3 > &  u,
Matrix< Real, 3 > &  v,
Matrix< Real, 3 > &  b,
int  max_it 
)

Definition at line 406 of file svd_quda.h.

template<class Cmplx >
DEVICEHOST RealTypeId<Cmplx>::Type cabs ( const Cmplx &  z)
inline

Definition at line 13 of file svd_quda.h.

template<class Cmplx >
DEVICEHOST void computeSVD ( const Matrix< Cmplx, 3 > &  m,
Matrix< Cmplx, 3 > &  u,
Matrix< Cmplx, 3 > &  v,
typename RealTypeId< Cmplx >::Type  singular_values[3] 
)

Definition at line 635 of file svd_quda.h.

template<class T >
DEVICEHOST void constructHHMat ( const T &  tau,
const Array< T, 3 > &  v,
Matrix< T, 3 > &  hh 
)

Definition at line 75 of file svd_quda.h.

template<class Real >
DEVICEHOST void getGivensRotation ( const Real &  alpha,
const Real &  beta,
Real &  c,
Real &  s 
)

Definition at line 110 of file svd_quda.h.

template<class Real >
DEVICEHOST void getLambdaMax ( const Matrix< Real, 3 > &  b,
Real &  lambda_max 
)

Definition at line 91 of file svd_quda.h.

DEVICEHOST float getNorm ( const Array< float2, 3 > &  a)

Definition at line 52 of file svd_quda.h.

DEVICEHOST double getNorm ( const Array< double2, 3 > &  a)

Definition at line 63 of file svd_quda.h.

template<class Cmplx >
DEVICEHOST void getRealBidiagMatrix ( const Matrix< Cmplx, 3 > &  mat,
Matrix< Cmplx, 3 > &  u,
Matrix< Cmplx, 3 > &  v 
)

Definition at line 279 of file svd_quda.h.

template<class T , class U >
DEVICEHOST PromoteTypeId<T,U>::Type quadSum ( const T &  a,
const U &  b 
)
inline

Definition at line 32 of file svd_quda.h.

template<class Real >
DEVICEHOST void smallSVD ( Matrix< Real, 2 > &  u,
Matrix< Real, 2 > &  v,
Matrix< Real, 2 > &  m 
)
inline

Definition at line 162 of file svd_quda.h.

template<class Real >
DEVICEHOST void swap ( Real &  a,
Real &  b 
)
inline

Definition at line 153 of file svd_quda.h.