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_hegvd< T, Device > Struct Template Reference

#include <lapack.h>

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

Public Types

using Real = typename GetTypeReal< T >::type
 

Public Member Functions

void operator() (const int n, const int lda, T *Mat_A, T *Mat_B, Real *eigen_val, T *eigen_vec)
 Computes all the eigenvalues and, optionally, the eigenvectors of a complex generalized Hermitian-definite eigenproblem.
 

Member Typedef Documentation

◆ Real

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

Member Function Documentation

◆ operator()()

template<typename T , typename Device >
void container::kernels::lapack_hegvd< T, Device >::operator() ( const int  n,
const int  lda,
T Mat_A,
T Mat_B,
Real eigen_val,
T eigen_vec 
)

Computes all the eigenvalues and, optionally, the eigenvectors of a complex generalized Hermitian-definite eigenproblem.

This function solves the problem A*x = lambda*B*x, where A and B are Hermitian matrices, and B is also positive definite.

Parameters
nThe order of the matrices Mat_A and Mat_B. n >= 0.
ldaThe leading dimension of the arrays Mat_A and Mat_B. lda >= max(1, n).
Mat_AOn entry, the Hermitian matrix A. On exit, it may be overwritten.
Mat_BOn entry, the Hermitian positive definite matrix B. On exit, it may be overwritten.
eigen_valArray to store the computed eigenvalues in ascending order.
eigen_vecIf not nullptr, array to store the computed eigenvectors.
Note
See LAPACK ZHEGVD or CHEGVD documentation for more details. This function assumes that A and B have the same leading dimensions, lda. This function copies B to auxiliary memory to avoid being overwritten.

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