7#ifndef MODULE_HSOLVER_HEGVD_H
8#define MODULE_HSOLVER_HEGVD_H
35inline double get_real(
const std::complex<double> &x) {
return x.real(); }
37inline float get_real(
const std::complex<float> &x) {
return x.real(); }
39inline double get_real(
const double &x) {
return x; }
41inline float get_real(
const float &x) {
return x; }
44template <
typename T,
typename Device>
67 void operator()(
const Device* d,
const int nstart,
const int ldh,
const T* A,
T* B,
Real* W,
T* V);
87template <
typename T,
typename Device>
102 void operator()(
const Device* d,
const int nstart,
const int ldh,
T* A,
T* B,
const int m,
Real* W,
T* V);
105template <
typename T,
typename Device>
128 void operator()(
const Device *d,
const int ndim,
const int lda,
const T *A,
const int neig,
Real *w,
T *z);
131#if __CUDA || __UT_USE_CUDA || __ROCM || __UT_USE_ROCM
133void createGpuSolverHandle();
134void destroyGpuSolverHandle();
#define T
Definition exp.cpp:237
Definition diag_comm_info.h:9
double get_real(const std::complex< double > &x)
Definition hegvd_op.h:35
T type
Definition macros.h:8
Definition hegvd_op.h:107
typename GetTypeReal< T >::type Real
Definition hegvd_op.h:108
void operator()(const Device *d, const int ndim, const int lda, const T *A, const int neig, Real *w, T *z)
heevx computes the first m eigenvalues and their corresponding eigenvectors of a complex generalized ...
typename GetTypeReal< T >::type Real
Definition hegvd_op.h:47
void operator()(const Device *d, const int nstart, const int ldh, const T *A, T *B, Real *W, T *V)
HEGVD computes all the eigenvalues and eigenvectors of a complex generalized Hermitian-definite eigen...
void operator()(const Device *d, const int nstart, const int ldh, T *A, T *B, const int m, Real *W, T *V)
HEGVX computes first m eigenvalues and eigenvectors of a complex generalized Input Parameters.
typename GetTypeReal< T >::type Real
Definition hegvd_op.h:90