1#ifndef SCA_LAPACK_HERMITIAN_EIGEN_SYSTEM_DEFINED
2# define SCA_LAPACK_HERMITIAN_EIGEN_STSTEM_DEFINED
10template <
typename F =
double>
43 workCount =
static_cast<int>(optimalWork + 0.5);
45 work =
new double[workCount];
49 if (work)
delete[] work;
95 double optimalRealWork;
116 workCount =
static_cast<int>(std::real(optimalWork) + 0.5);
117 realWorkCount =
static_cast<int64_t
>(optimalRealWork + 0.5);
121 realWork =
new double[2 * realWorkCount];
125 if (work)
delete[] work;
126 if (realWork)
delete[] realWork;
void pdsyev_(const char *jobz, const char *upperLower, const int *m, const double *a, const int *ia, const int *ja, const int *desca, double *lambda, double *z, const int *iz, const int *jz, const int *descz, double *work, const int *lwork, int *info)
void pzheev_(const char *jobz, const char *upperLower, const int *m, const sisi4s::complex *a, const int *ia, const int *ja, const int *desca, double *lambda, sisi4s::complex *z, const int *iz, const int *jz, const int *descz, sisi4s::complex *work, const int *lwork, double *realWork, const int *lRealCount, int *info)
int realWorkCount
Definition ScaLapackHermitianEigenSystem.hpp:157
ScaLapackMatrix< complex > * U
Definition ScaLapackHermitianEigenSystem.hpp:156
void solve(double *lambda)
Definition ScaLapackHermitianEigenSystem.hpp:131
~ScaLapackHermitianEigenSystem()
Definition ScaLapackHermitianEigenSystem.hpp:124
complex * work
Definition ScaLapackHermitianEigenSystem.hpp:158
double * realWork
Definition ScaLapackHermitianEigenSystem.hpp:159
ScaLapackHermitianEigenSystem(ScaLapackMatrix< complex > const *A_, ScaLapackMatrix< complex > *U_)
Definition ScaLapackHermitianEigenSystem.hpp:85
ScaLapackMatrix< complex > const * A
Definition ScaLapackHermitianEigenSystem.hpp:155
ScaLapackHermitianEigenSystem(ScaLapackMatrix< double > const *A_, ScaLapackMatrix< double > *U_)
Definition ScaLapackHermitianEigenSystem.hpp:17
ScaLapackMatrix< double > const * A
Definition ScaLapackHermitianEigenSystem.hpp:75
~ScaLapackHermitianEigenSystem()
Definition ScaLapackHermitianEigenSystem.hpp:48
void solve(double *lambda)
Definition ScaLapackHermitianEigenSystem.hpp:53
int workCount
Definition ScaLapackHermitianEigenSystem.hpp:77
ScaLapackMatrix< double > * U
Definition ScaLapackHermitianEigenSystem.hpp:76
double * work
Definition ScaLapackHermitianEigenSystem.hpp:78
Definition ScaLapackHermitianEigenSystem.hpp:11
Definition ScaLapackMatrix.hpp:22
Definition Algorithm.hpp:10
Complex< real > complex
Definition Complex.hpp:17