#include <lapack.h>
|
| void | operator() (const int dim, const int lda, const T *Mat, const int neig, Real *eigen_val, T *eigen_vec) |
| | Computes selected eigenvalues and, optionally, eigenvectors of a complex Hermitian matrix.
|
| |
◆ Real
template<typename
T , typename Device >
◆ operator()()
template<typename
T , typename Device >
Computes selected eigenvalues and, optionally, eigenvectors of a complex Hermitian matrix.
This function solves the problem A*x = lambda*x, where A is a Hermitian matrix. It computes a subset of eigenvalues and, optionally, the corresponding eigenvectors.
- Parameters
-
| dim | The order of the matrix A. dim >= 0. |
| lda | The leading dimension of the array Mat. lda >= max(1, dim). |
| [in] | Mat | On entry, the Hermitian matrix A. On exit, A is kept. Only used to provide values of matrix. |
| neig | The number of eigenvalues to be found. 0 <= neig <= dim. |
| eigen_val | On normal exit, the first neig elements contain the selected eigenvalues in ascending order. |
| eigen_vec | If eigen_vec is not nullptr, then on exit it contains the orthonormal eigenvectors of the matrix A. The eigenvectors are stored in the columns of eigen_vec, in the same order as the eigenvalues. |
- Note
- See LAPACK ZHEEVX or CHEEVX documentation for more details. This routine allocates auxiliary memory inside to prevent input matrix from being destroyed.
The documentation for this struct was generated from the following file:
- /home/runner/work/abacus-develop/abacus-develop/source/source_base/module_container/ATen/kernels/lapack.h