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

#include <hegvd_op.h>

Collaboration diagram for hsolver::heevx_op< T, Device >:

Public Types

using Real = typename GetTypeReal< T >::type
 

Public Member Functions

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 Hermitian-definite eigenproblem
 

Member Typedef Documentation

◆ Real

template<typename T , typename Device >
using hsolver::heevx_op< T, Device >::Real = typename GetTypeReal<T>::type

Member Function Documentation

◆ operator()()

template<typename T , typename Device >
void hsolver::heevx_op< T, Device >::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 Hermitian-definite eigenproblem

In this op, the CPU version is implemented through the evx interface, and the CUDA version is implemented through the evd interface and acquires the first m eigenpairs. API doc:

  1. zheevx: https://netlib.org/lapack/explore-html/df/d9a/group__complex16_h_eeigen_gaabef68a9c7b10df7aef8f4fec89fddbe.html
  2. cusolverDnZheevd: https://docs.nvidia.com/cuda/cusolver/index.html#cusolverdn-t-syevd

Input Parameters

Parameters
d: the type of device
ndim: the size of square matrix
lda: leading dimension of the matrix
A: the hermitian matrix A in A x=lambda x
neig: the number of eigenpairs to be calculated Output Parameter
wcalculated eigenvalues
zcalculated eigenvectors

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