ABACUS develop
Atomic-orbital Based Ab-initio Computation at UStc
Loading...
Searching...
No Matches
Public Types | Public Member Functions | List of all members
container::kernels::lapack_heevd< T, Device > Struct Template Reference

#include <lapack.h>

Collaboration diagram for container::kernels::lapack_heevd< T, Device >:

Public Types

using Real = typename GetTypeReal< T >::type
 Computes all eigenvalues and, optionally, eigenvectors of a complex Hermitian matrix.
 

Public Member Functions

void operator() (const int dim, T *Mat, const int lda, Real *eigen_val)
 

Member Typedef Documentation

◆ Real

template<typename T , typename Device >
using container::kernels::lapack_heevd< T, Device >::Real = typename GetTypeReal<T>::type

Computes all eigenvalues and, optionally, eigenvectors of a complex Hermitian matrix.

This function solves the standard Hermitian eigenvalue problem A*x = lambda*x, where A is a Hermitian matrix. It computes all eigenvalues and optionally the corresponding eigenvectors using a divide and conquer algorithm.

Parameters
[in]dimThe order of the matrix A. dim >= 0.
[in,out]MatOn entry, the Hermitian matrix A. On exit, if eigenvectors are computed, A contains the orthonormal eigenvectors of the matrix A.
[in]ldaThe leading dimension of the array Mat. lda >= max(1, dim).
[out]eigen_valArray of size at least dim. On normal exit, contains the eigenvalues in ascending order.
Note
See LAPACK ZHEEVD or CHEEVD documentation for more details. The matrix is assumed to be stored in upper or lower triangular form according to the uplo parameter (not shown here but typically passed to the actual implementation).

Member Function Documentation

◆ operator()()

template<typename T , typename Device >
void container::kernels::lapack_heevd< T, Device >::operator() ( const int  dim,
T Mat,
const int  lda,
Real eigen_val 
)

The documentation for this struct was generated from the following file: