FreeBSD Manual Pages
elpa_eigen...oat_complex(3) Library Functions Manual elpa_eigen...oat_complex(3) NAME elpa_eigenvectors_float_complex - computes all eigenvalues and (part of) the eigenvectors for a complex hermitian eigenproblem: A*Q = <lambda>*Q SYNOPSIS FORTRAN INTERFACE use elpa class(elpa_t), pointer :: elpa_handle call elpa_handle%eigenvectors_float_complex (a, ev, q, error) With the definitions of the input and output variables: class(elpa_t) :: elpa_handle An instance of the ELPA object. real(kind=c_float_complex) :: a OR type(c_ptr) :: a The local part of the host/device matrix A for which all eigenvalues and (part of) eigenvectors should be computed. The dimensions of ma- trix a must be set BEFORE with the methods elpa_set(3) and elpa_setup(3). The global matrix has to be symmetric, this is not checked by the routine. In case of a GPU build a can be a pointer to the device memory. real(kind=c_float) :: ev OR type(c_ptr) :: ev The host/device vector ev 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. real(kind=c_float_complex) :: q OR type(c_ptr) :: q The host/device storage space for the computed eigenvectors. The number of requested eigenvectors must be set BEFORE with the methods elpa_set(3) and elpa_setup(3). In case of a GPU build q can be a pointer to the device memory. integer, optional :: error The return error code of the function. Should be "ELPA_OK". The er- ror code can be queried with the function elpa_strerr(3) C/C++ INTERFACE #include <elpa/elpa.h> elpa_t elpa_handle; // C: void elpa_eigenvectors_float_complex(elpa_t elpa_handle, float complex *a, float complex *ev, float complex *q, int *error); // C++: void elpa_eigenvalues_float_complex(elpa_t elpa_handle, std::complex<float> *a, float *ev, std::complex<float> *q, int *error); With the definitions of the input and output variables: elpa_t elpa_handle; The handle to the ELPA object float complex *a; OR std::complex<float> *a; The local part of the host/device matrix A for which the eigenpairs should be computed. The dimensions of the matrix must be set BEFORE with the methods elpa_set(3) and elpa_setup(3). The global matrix has to be symmetric, this is not checked by the routine. In case of a GPU build a can be a pointer to the device memory. float *ev; The host/device storage for the computed eigenvalues. Eigenvalues will be stored in ascending order. In case of a GPU build ev can be a pointer to the device memory. float complex *q; OR std::complex<float> *q; The host/device storage space for the computed eigenvectors. The number of requested eigenvectors must be set BEFORE with the methods elpa_set(3) and elpa_setup(3). In case of a GPU build q can be a pointer to the device memory. 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 and (part of) the eigenvectors of a complex her- mitian matrix. The functions elpa_init(3), elpa_allocate(3), elpa_set(3), and elpa_setup(3) must be called BEFORE elpa_eigenvectors_float_complex can be called. In particular, the number of eigenvectors to be computed, "nev", must be set with elpa_set(3). SEE ALSO elpa2_print_kernels(1) elpa_init(3) elpa_allocate(3) elpa_set(3) elpa_setup(3) elpa_strerr(3) elpa_eigenvalues(3) elpa_skew_eigenvalues(3) elpa_skew_eigenvectors(3) elpa_cholesky(3) elpa_invert_triangular(3) elpa_solve_tridiagonal(3) elpa_hermitian_multiply(3) elpa_uninit(3) elpa_deallocate(3) ELPA Thu Nov 28 2024 elpa_eigen...oat_complex(3)
NAME | SYNOPSIS | DESCRIPTION | SEE ALSO
Want to link to this manual page? Use this URL:
<https://man.freebsd.org/cgi/man.cgi?query=elpa_eigenvectors_float_complex&sektion=3&manpath=FreeBSD+Ports+15.1.quarterly>
