1 #include "../../include/monolish_blas.hpp"
2 #include "../../include/monolish_eigen.hpp"
3 #include "../internal/lapack/monolish_lapack.hpp"
4 #include "../internal/monolish_internal.hpp"
8 template <
typename MATRIX,
typename T>
14 const char jobz =
'V';
15 const char uplo =
'U';
17 int info = internal::lapack::syevd(A, lambda, &jobz, &uplo);
20 }
else if (info < 0) {
28 template int standard_eigen::DC<matrix::Dense<double>,
double>::LAPACK_DC(
29 matrix::Dense<double> &A, vector<double> &lambda);
30 template int standard_eigen::DC<matrix::Dense<float>,
float>::LAPACK_DC(
31 matrix::Dense<float> &A, vector<float> &lambda);
33 template <
typename MATRIX,
typename T>
39 if (this->get_lib() == 0) {
40 ret = LAPACK_DC(A, lambda);
47 template int standard_eigen::DC<matrix::Dense<double>,
double>::solve(
48 matrix::Dense<double> &A, vector<double> &lambda);
50 standard_eigen::DC<matrix::Dense<float>,
float>::solve(matrix::Dense<float> &A,
53 template <
typename MATRIX,
typename T>
55 vector<T> &lambda,
int itype) {
60 const char jobz =
'V';
61 const char uplo =
'U';
63 int info = internal::lapack::sygvd(A, B, lambda, itype, &jobz, &uplo);
66 }
else if (info < 0) {
74 template int generalized_eigen::DC<matrix::Dense<double>,
double>::LAPACK_DC(
75 matrix::Dense<double> &A, matrix::Dense<double> &B, vector<double> &lambda,
77 template int generalized_eigen::DC<matrix::Dense<float>,
float>::LAPACK_DC(
78 matrix::Dense<float> &A, matrix::Dense<float> &B, vector<float> &lambda,
81 template <
typename MATRIX,
typename T>
83 vector<T> &lambda,
int itype) {
88 if (this->get_lib() == 0) {
89 ret = LAPACK_DC(A, B, lambda, itype);
96 template int generalized_eigen::DC<matrix::Dense<double>,
double>::solve(
97 matrix::Dense<double> &A, matrix::Dense<double> &B, vector<double> &lambda,
99 template int generalized_eigen::DC<matrix::Dense<float>,
float>::solve(
100 matrix::Dense<float> &A, matrix::Dense<float> &B, vector<float> &lambda,