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

#include <dngvd_op.h>

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

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, const int m, Real *W, T *V)
 DNEVX 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::dnevx_op< T, Device >::Real = typename GetTypeReal<T>::type

Member Function Documentation

◆ operator()()

template<typename T , typename Device >
void hsolver::dnevx_op< T, Device >::operator() ( const Device *  d,
const int  nstart,
const int  ldh,
const T A,
const int  m,
Real W,
T V 
)

DNEVX 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
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 (row major) Output Parameter
W: calculated eigenvalues
V: calculated eigenvectors (row major)

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