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

FreeBSD Manual Pages

  
 
  

home | help
elpa_gener...igenvalues(3)  Library Functions Manual  elpa_gener...igenvalues(3)

NAME
     elpa_generalized_eigenvalues  -  computes	all eigenvalues of a generalized
     eigenvalue problem, A*Q = <lambda>*B*Q, for real symmetric or complex  her-
     mitian matrices A, B.

     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_generalized_eigenvalues_double,
     elpa_generalized_eigenvalues_float,       elpa_generalized_eigenvalues_dou-
     ble_complex, elpa_generalized_eigenvalues_float_complex.

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

     call elpa_handle%generalized_eigenvalues (a, b, ev,  is_already_decomposed,
     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 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 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)".

     datatype :: b
	    The local matrix b defining the generalized eigenvalue problem.  The
	    dimensions	and  datatype  of the matrix b has to be the same as for
	    matrix a.

     datatype_real :: ev
	    The array where the eigenvalues <lambda> will be stored in ascending
	    order.  The  datatype_real	of  the  vector   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.

     logical :: is_already_decomposed
	    Has  to  be  set  to  .false.  for the first call with a given b and
	    .true. for each subsequent call with the same b, since  b  then  al-
	    ready  contains  decomposition  and  thus  the  decomposing  step is
	    skipped.

     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_generalized_eigenvalues(elpa_t elpa_handle, datatype *a, datatype
     *b, datatype_real *ev, int is_already_decomposed, 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 matrix a for which the eigenvalues 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	 complex"/"std::complex<double>",   "float  com-
	    plex"/"std::complex<float>" for C/C++.

     datatype * b;
	    The matrix b defining the generalized eigenvalue problem. The dimen-
	    sions and the datatype of the matrix b must be the same as matrix a.

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

     int  is_already_decomposed;
	    Has  to be set to 0 for the first call with a given b and 1 for each
	    subsequent call with the same b, since b then already  contains  de-
	    composition and thus the decomposing step is skipped.

     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  generalized eigenvalues for a real symmetric or complex her-
     mitian generalized eigenproblem.  The  functions  elpa_init(3),  elpa_allo-
     cate(3), elpa_set(3), and elpa_setup(3) must be called BEFORE elpa_general-
     ized_eigenvalues  can  be called. Unlike in the case of ordinary eigenvalue
     problem, the generalized problem calls some  external  ScaLAPACK  routines.
     The user is responsible for initialization of the BLACS context, which then
     has to be passed to elpa by elpa_set(3) BEFORE elpa_generalized_eigenvalues
     can be called.

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_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_gener...igenvalues(3)

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

home | help