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

FreeBSD Manual Pages

  
 
  

home | help
elpa_eigenvectors(3)	    Library Functions Manual	    elpa_eigenvectors(3)

NAME
     elpa_eigenvectors - computes all eigenvalues and (part of) the eigenvectors
     for a real symmetric or complex hermitian eigenproblem: A*Q = <lambda>*Q

     There are also variations of this routine that can accept not only host but
     also  device  pointers  as input/output. Names of these routines explicitly
     contain the corresponding datatypes: elpa_eigenvectors_double,  elpa_eigen-
     vectors_float,	  elpa_eigenvectors_double_complex,	  elpa_eigenvec-
     tors_float_complex.

SYNOPSIS
   FORTRAN INTERFACE
     use elpa
     class(elpa_t), pointer :: elpa_handle

     call elpa_handle%eigenvectors (a, ev, q, error)

     With the definitions of the input and output variables:

     class(elpa_t) :: elpa_handle
	    An instance of the ELPA object.

     datatype :: a
	    The local part of matrix A for which the eigenvalues and  (part  of)
	    eigenvectors  should be computed. The dimensions of matrix a must be
	    set BEFORE with  the  methods  elpa_set(3)	and  elpa_setup(3).  The
	    datatype   of  the	matrix	can  be  one  of  "real(kind=c_double)",
	    "real(kind=c_float)",     "complex(kind=c_double)",     or	   "com-
	    plex(kind=c_float)".  The  global matrix has to be symmetric or her-
	    mitian, this is not checked by the routine.

     datatype_real :: ev
	    The global array where the eigenvalues <lambda> will  be  stored  in
	    ascending	order.	 The   datatype_real   of   ev	 can  be  either
	    "real(kind=c_double)"  or  "real(kind=c_float)",  depending  of  the
	    datatype  of  the  matrix. Note that complex hermitian matrices also
	    have real eigenvalues.

     datatype :: q
	    The storage space for the computed eigenvectors Q. The number of re-
	    quested eigenvectors must be set BEFORE with the methods elpa_set(3)
	    and elpa_setup(3).	The  datatype  of  the	matrix	can  be  one  of
	    "real(kind=c_double)",   "real(kind=c_float)",  "complex(kind=c_dou-
	    ble)", or "complex(kind=c_float)".

     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;

     void  elpa_eigenvectors(elpa_t elpa_handle, datatype *a, datatype_real *ev,
     datatype *q, int *error);

     With the definitions of the input and output variables:

     elpa_t  elpa_handle;
	    The handle to the ELPA object

     datatype  *a;
	    The local part of matrix A for which the eigenvalues and  (part  of)
	    eigenvectors  should  be computed. The dimensions of the matrix must
	    be set BEFORE with the methods elpa_set(3)	and  elpa_setup(3).  The
	    datatype   can   be   one	of   "double",	 "float",  "double  com-
	    plex"/"std::complex<double>", "float  complex"/"std::complex<float>"
	    for  C/C++. The global matrix has to be symmetric or hermitian, this
	    is not checked by the routine.

     datatype_real *ev;
	    The global array where the eigenvalues <lambda> will  be  stored  in
	    ascending  order.  The  datatype_real  can	be  either  "double"  or
	    "float", depending of the datatype of  the	matrix.  Note  that  the
	    eigenvalues of complex hermitian matrices are also real.

     datatype  *q;
	    The storage space for the computed eigenvectors Q. The number of re-
	    quested eigenvectors must be set BEFORE with the methods elpa_set(3)
	    and  elpa_setup(3).  The  datatype	can be one of "double", "float",
	    "double complex"/"std::complex<double>", "float  complex"/"std::com-
	    plex<float>" for C/C++.

     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 eigenvector spectrum of a real
     symmetric or complex hermitian matrix. The functions elpa_init(3), elpa_al-
     locate(3), elpa_set(3), and elpa_setup(3) must be called BEFORE elpa_eigen-
     vectors can be called. In particular, the number of eigenvectors to be com-
     puted, "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_eigenvectors(3)

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

home | help