|
QUDA
0.9.0
|
#include <float.h>
Go to the source code of this file.
Macros | |
| #define | DEVICEHOST __device__ __host__ |
| #define | SVDPREC 1e-11 |
| #define | LOG2 0.69314718055994530942 |
| #define | INVALID_DOUBLE (-DBL_MAX) |
Functions | |
| template<class Cmplx > | |
| DEVICEHOST std::remove_reference< decltype(Cmplx::x)>::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< complex< float >, 3 > &a) |
| DEVICEHOST double | getNorm (const Array< complex< double >, 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 Float > | |
| DEVICEHOST void | getRealBidiagMatrix (const Matrix< complex< Float >, 3 > &mat, Matrix< complex< Float >, 3 > &u, Matrix< complex< Float >, 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 Float > | |
| DEVICEHOST void | computeSVD (const Matrix< complex< Float >, 3 > &m, Matrix< complex< Float >, 3 > &u, Matrix< complex< Float >, 3 > &v, Float singular_values[3]) |
| #define DEVICEHOST __device__ __host__ |
Definition at line 6 of file svd_quda.h.
| #define INVALID_DOUBLE (-DBL_MAX) |
Definition at line 9 of file svd_quda.h.
Referenced by getRealBidiagMatrix().
| #define LOG2 0.69314718055994530942 |
Definition at line 8 of file svd_quda.h.
Referenced by smallSVD().
| #define SVDPREC 1e-11 |
Definition at line 7 of file svd_quda.h.
Referenced by bdSVD().
|
inline |
Definition at line 115 of file svd_quda.h.
References c, fused_exterior_ndeg_tm_dslash_cuda_gen::i, index(), and s.
Referenced by bdSVD().


|
inline |
Definition at line 129 of file svd_quda.h.
Referenced by smallSVD().

| DEVICEHOST void bdSVD | ( | Matrix< Real, 3 > & | u, |
| Matrix< Real, 3 > & | v, | ||
| Matrix< Real, 3 > & | b, | ||
| int | max_it | ||
| ) |
Definition at line 392 of file svd_quda.h.
References accumGivensRotation(), b, c, fabs(), getGivensRotation(), getLambdaMax(), fused_exterior_ndeg_tm_dslash_cuda_gen::i, dslash::it, s, quda::setIdentity(), smallSVD(), and SVDPREC.
Referenced by computeSVD().


|
inline |
Definition at line 17 of file svd_quda.h.
References fabs(), sqrt(), and z.
Referenced by getNorm(), and getRealBidiagMatrix().


| DEVICEHOST void computeSVD | ( | const Matrix< complex< Float >, 3 > & | m, |
| Matrix< complex< Float >, 3 > & | u, | ||
| Matrix< complex< Float >, 3 > & | v, | ||
| Float | singular_values[3] | ||
| ) |
Definition at line 620 of file svd_quda.h.
References bdSVD(), conj(), and fused_exterior_ndeg_tm_dslash_cuda_gen::i.

|
inline |
Definition at line 61 of file svd_quda.h.
References conj(), quda::outerProd(), and quda::setIdentity().
Referenced by getRealBidiagMatrix().


|
inline |
Definition at line 96 of file svd_quda.h.
Referenced by bdSVD(), and smallSVD().


|
inline |
Definition at line 77 of file svd_quda.h.
References b, quda::blas::norm1(), and quadSum().
Referenced by bdSVD().


|
inline |
Definition at line 38 of file svd_quda.h.
References a, cabs(), and quadSum().
Referenced by getRealBidiagMatrix().


|
inline |
Definition at line 49 of file svd_quda.h.
References a, cabs(), and quadSum().

| DEVICEHOST void getRealBidiagMatrix | ( | const Matrix< complex< Float >, 3 > & | mat, |
| Matrix< complex< Float >, 3 > & | u, | ||
| Matrix< complex< Float >, 3 > & | v | ||
| ) |
Definition at line 260 of file svd_quda.h.
References cabs(), conj(), constructHHMat(), quda::copyColumn(), getNorm(), INVALID_DOUBLE, mat(), quda::blas::norm1(), norm2(), p, quadSum(), quda::setIdentity(), w, x, y, and z.

|
inline |
Definition at line 28 of file svd_quda.h.
References a, b, fabs(), and sqrt().
Referenced by getLambdaMax(), getNorm(), getRealBidiagMatrix(), and smallSVD().


|
inline |
Definition at line 148 of file svd_quda.h.
References assignGivensRotation(), c, exp, fabs(), getGivensRotation(), log(), LOG2, p, quadSum(), s, quda::setIdentity(), deg_tm_dslash_cuda_gen::sign(), and swap().
Referenced by bdSVD().


|
inline |
Definition at line 139 of file svd_quda.h.
Referenced by smallSVD().

1.8.14