|
ABACUS develop
Atomic-orbital Based Ab-initio Computation at UStc
|
#include <hegvd_op.h>
Public Types | |
| using | Real = typename GetTypeReal< T >::type |
Public Member Functions | |
| 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 eigenproblem. If eigenvectors are desired, it uses a divide and conquer algorithm. | |
| using hsolver::hegvd_op< T, Device >::Real = typename GetTypeReal<T>::type |
| void hsolver::hegvd_op< T, Device >::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 eigenproblem. If eigenvectors are desired, it uses a divide and conquer algorithm.
In this op, the CPU version is implemented through the gvd interface, and the CUDA version is implemented through the gvd interface. API doc:
Input Parameters
| d | : the type of device |
| nstart | : the number of cols of the matrix |
| ldh | : the number of rows of the matrix |
| A | : the hermitian matrix A in A x=lambda B x (col major) |
| B | : the overlap matrix B in A x=lambda B x (col major) Output Parameter |
| W | : calculated eigenvalues |
| V | : calculated eigenvectors (col major) |