Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages

  
 
  

home | help
elpa_eigen...le_complex(3)  Library Functions Manual  elpa_eigen...le_complex(3)

NAME
     elpa_eigenvectors_double_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_double_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_double_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_double) :: 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_double_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_double_complex(elpa_t  elpa_handle,  double  complex
     *a, double complex *ev, double complex *q, int *error);

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

     With the definitions of the input and output variables:

     elpa_t  elpa_handle;
	    The handle to the ELPA object

     double complex  *a;       OR   std::complex<double>  *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.

     double  *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.

     double complex  *q;       OR   std::complex<double>  *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_double_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...le_complex(3)

Want to link to this manual page? Use this URL:
<https://man.freebsd.org/cgi/man.cgi?query=elpa_eigenvectors_double_complex&sektion=3&manpath=FreeBSD+Ports+15.1.quarterly>

home | help