1#ifndef SCA_LAPACK_SINGULAR_VALUE_DECOMPOSITION_DEFINED
2#define SCA_LAPACK_SINGULAR_VALUE_DECOMPOSITION_DEFINED
10template <
typename F =
double>
49 workCount =
static_cast<int>(optimalWork + 0.5);
51 work =
new double[workCount];
55 if (work)
delete[] work;
104 , realWork(nullptr) {
106 double optimalRealWork;
122 VT->getLocalValues(),
131 workCount =
static_cast<int>(std::real(optimalWork) + 0.5);
134 realWork =
new double[
static_cast<int64_t
>(optimalRealWork + 0.5)];
138 if (work)
delete[] work;
139 if (realWork)
delete[] realWork;
159 VT->getLocalValues(),
void pdgesvd_(const char *jobu, const char *jobvt, const int *m, const int *n, const double *a, const int *ia, const int *ja, const int *desca, double *s, double *u, const int *iu, const int *ju, const int *descu, double *vt, const int *ivt, const int *jvt, const int *descvt, double *work, const int *lwork, int *info)
void pzgesvd_(const char *jobu, const char *jobvt, const int *m, const int *n, const sisi4s::complex *a, const int *ia, const int *ja, const int *desca, double *s, sisi4s::complex *u, const int *iu, const int *ju, const int *descu, sisi4s::complex *vt, const int *ivt, const int *jvt, const int *descvt, sisi4s::complex *work, const int *lwork, double *rwork, int *info)
Definition ScaLapackMatrix.hpp:22
complex * work
Definition ScaLapackSingularValueDecomposition.hpp:174
void decompose(double *sigma)
Definition ScaLapackSingularValueDecomposition.hpp:143
ScaLapackMatrix< complex > const * A
Definition ScaLapackSingularValueDecomposition.hpp:171
~ScaLapackSingularValueDecomposition()
Definition ScaLapackSingularValueDecomposition.hpp:137
ScaLapackMatrix< complex > * U
Definition ScaLapackSingularValueDecomposition.hpp:172
ScaLapackSingularValueDecomposition(ScaLapackMatrix< complex > const *A_, ScaLapackMatrix< complex > *U_, ScaLapackMatrix< complex > *VT_)
Definition ScaLapackSingularValueDecomposition.hpp:96
double * realWork
Definition ScaLapackSingularValueDecomposition.hpp:175
int workCount
Definition ScaLapackSingularValueDecomposition.hpp:173
int workCount
Definition ScaLapackSingularValueDecomposition.hpp:88
ScaLapackMatrix< double > const * A
Definition ScaLapackSingularValueDecomposition.hpp:86
void decompose(double *sigma)
Definition ScaLapackSingularValueDecomposition.hpp:59
ScaLapackMatrix< double > * U
Definition ScaLapackSingularValueDecomposition.hpp:87
~ScaLapackSingularValueDecomposition()
Definition ScaLapackSingularValueDecomposition.hpp:54
ScaLapackSingularValueDecomposition(ScaLapackMatrix< double > const *A_, ScaLapackMatrix< double > *U_, ScaLapackMatrix< double > *VT_)
Definition ScaLapackSingularValueDecomposition.hpp:17
double * work
Definition ScaLapackSingularValueDecomposition.hpp:89
Definition ScaLapackSingularValueDecomposition.hpp:11
Definition Algorithm.hpp:10
Complex< real > complex
Definition Complex.hpp:17