ELPA_EIGENVALUES_DOUBLE_COMPLEX(3)

πŸ“¦ version 2026.02.002, in nixpkgs unstable

πŸ’– NAME πŸ’–

elpa_eigenvalues_double_complex(3) β€” coming at you from the Library Functions Manual, bestie. This page is all about elpa_eigenvalues_double_complex, which computes all eigenvalues Ξ» for a complex hermitian eigenproblem: A*Q = Ξ»*Q. ✨

🌸 SYNOPSIS 🌸

🧚 FORTRAN INTERFACE 🧚

use elpa
class(elpa_t), pointer :: elpa_handle

call elpa_handle%eigenvalues_double_complex (a, ev, error)

With the definitions of the input and output variables (all of them πŸ’…):

class(elpa_t) :: elpa_handle β€” An instance of the ELPA object. πŸ‘‘

Matrix a β€” either:

real(kind=c_double_complex) :: a    OR   type(c_ptr) :: a

The local part of the host/device matrix A for which the eigenvalues should be computed. The dimensions of matrix a must be set BEFORE with the methods elpa_set(3) and elpa_setup(3). The global matrix has to be hermitian β€” this is not checked by the routine, no cap. In case of a GPU build, a can be a pointer to the device memory. 🫢

Eigenvalues ev β€” either:

real(kind=c_double) :: ev           OR   type(c_ptr) :: ev

The global array where the eigenvalues λ will be stored in ascending order. In case of a GPU build, ev can be a pointer to the device memory. Note that complex hermitian matrices also have real eigenvalues. 🌈

integer, optional :: error β€” The return error code of the function. Should be "ELPA_OK". The error code can be queried with the function elpa_strerr(3). πŸ’–

πŸ¦‹ C/C++ INTERFACE πŸ¦‹

#include <elpa/elpa.h>
elpa_t elpa_handle;

// C:
void elpa_eigenvalues_double_complex(elpa_t elpa_handle, double complex
*a, double *ev, int *error);

// C++:
void elpa_eigenvalues_double_complex(elpa_t elpa_handle,
std::complex<double> *a, double *ev, int *error);

With the definitions of the input and output variables, same energy:

elpa_t elpa_handle; β€” The handle to the ELPA object. πŸ’…

Matrix a β€” either:

double complex  *a;       OR   std::complex<double>  *a;

The local part of the host/device matrix A for which the eigenvalues should be computed. The dimensions of matrix a must be set BEFORE with the methods elpa_set(3) and elpa_setup(3). The global matrix A has to be hermitian β€” this is not checked by the routine. In case of a GPU build, a can be a pointer to the device memory. ✨

double *ev; β€” The global array where the eigenvalues Ξ» will be stored in ascending order. In case of a GPU build, ev can be a pointer to the device memory. Note that complex hermitian matrices also have real eigenvalues. πŸ“

int *error; β€” The error code of the function. Should be "ELPA_OK". The error codes can be queried with elpa_strerr(3). πŸ’€

πŸŽ€ DESCRIPTION πŸŽ€

Computes the eigenvalues of a complex hermitian matrix. The functions elpa_init(3), elpa_allocate(3), elpa_set(3), and elpa_setup(3) must be called BEFORE elpa_eigenvalues_double_complex can be called. Periodt. πŸ’…

Bestie, for real: those setup calls go first. This routine is not the opener. 🫢

πŸ”₯ SEE ALSO πŸ”₯


🫢 That’s the whole page, bestie! Source/version: ELPA. Date: Thu Nov 28 2024. Page name: elpa_eigen...ble_complex(3). πŸ’–
πŸ“¦ where this page comes from