Developer Reference for Intel® oneAPI Math Kernel Library for C
?feast_srci/?feast_hrci
Extended Eigensolver RCI interface.
Syntax
void sfeast_srci ( MKL_INT*ijob , const MKL_INT*n , MKL_Complex8*ze , float*work , MKL_Complex8*workc , float*aq , float*sq , MKL_INT*fpm , float*epsout , MKL_INT*loop , const float*emin , const float*emax , MKL_INT*m0 , float*lambda , float*q , MKL_INT*m , float*res , MKL_INT*info ) ;
void dfeast_srci ( MKL_INT*ijob , const MKL_INT*n , MKL_Complex16*ze , double*work , MKL_Complex16*workc , double*aq , double*sq , MKL_INT*fpm , double*epsout , MKL_INT*loop , const double*emin , const double*emax , MKL_INT*m0 , double*lambda , double*q , MKL_INT*m , double*res , MKL_INT*info ) ;
void cfeast_hrci ( MKL_INT*ijob , const MKL_INT*n , MKL_Complex8*ze , MKL_Complex8*work , MKL_Complex8*workc , MKL_Complex8*aq , MKL_Complex8*sq , MKL_INT*fpm , float*epsout , MKL_INT*loop , const float*emin , const float*emax , MKL_INT*m0 , float*lambda , MKL_Complex8*q , MKL_INT*m , float*res , MKL_INT*info ) ;
void zfeast_hrci ( MKL_INT*ijob , const MKL_INT*n , MKL_Complex16*ze , MKL_Complex16*work , MKL_Complex16*workc , MKL_Complex16*aq , MKL_Complex16*sq , MKL_INT*fpm , double*epsout , MKL_INT*loop , const double*emin , const double*emax , MKL_INT*m0 , double*lambda , MKL_Complex16*q , MKL_INT*m , double*res , MKL_INT*info ) ;
Include Files
mkl.h
Description
Compute eigenvalues as described in Extended Eigensolver RCI Interface Description .
Input Parameters
- ijob
-
INTEGER Job indicator variable. On entry, a call to ?feast_srci / ?feast_hrci with ijob =-1 initializes the eigensolver.
- n
-
INTEGER Sets the size of the problem. n > 0.
- work
-
REAL for sfeast_srci DOUBLE PRECISION for dfeast_srci COMPLEX for cfeast_hrci COMPLEX*16 for zfeast_hrci Workspace array of size n by m0 .
- workc
-
COMPLEX for sfeast_srci and cfeast_hrci COMPLEX*16 for dfeast_srci and zfeast_hrci Workspace array of size n by m0 .
- aq , sq
-
REAL for sfeast_srci DOUBLE PRECISION for dfeast_srci COMPLEX for cfeast_hrci COMPLEX*16 for zfeast_hrci Workspace arrays of size m0 by m0 .
- fpm
-
INTEGER Array, size of 128. This array is used to pass various parameters to Extended Eigensolver routines. See Extended Eigensolver Input Parameters for a complete description of the parameters and their default values.
- emin , emax
-
REAL for sfeast_srci and cfeast_hrci DOUBLE PRECISION for dfeast_srci and zfeast_hrci The lower and upper bounds of the interval to be searched for eigenvalues; emin ≤ emax.
- m0
-
INTEGER On entry, specifies the initial guess for subspace size to be used, 0 < m0 ≤ n . Set m0 ≥ m where m is the total number of eigenvalues located in the interval [ emin , emax ]. If the initial guess is wrong, Extended Eigensolver routines return info =3.
- q
-
REAL for sfeast_srci DOUBLE PRECISION for dfeast_srci COMPLEX for cfeast_hrci COMPLEX*16 for zfeast_hrci On entry, if fpm(5)[4] =1, the array q of size n by m contains a basis of guess subspace where n is the order of the input matrix.
Output Parameters
- ijob
-
On exit, the parameter carries the status flag that indicates the condition of the return. The status information is divided into three categories: A non-zero value of ijob specifically means the following:
- ze
-
COMPLEX for sfeast_srci and cfeast_hrci COMPLEX*16 for dfeast_srci and zfeast_hrci Defines the coordinate along the complex contour. All values of ze are generated by ?feast_srci / ?feast_hrci internally.
- fpm
-
On output, contains coordinates of columns of work array needed for iterative refinement. (See Extended Eigensolver RCI Interface Description .)
- epsout
-
REAL for sfeast_srci and cfeast_hrci DOUBLE PRECISION for dfeast_srci and zfeast_hrci On output, contains the relative error on the trace: \(|trace_{i} - trace_{i-1} | / max(|emin|, |emax|)\).
- loop
-
INTEGER On output, contains the number of refinement loop executed. Ignored on input.
- lambda
-
REAL for sfeast_srci and cfeast_hrci DOUBLE PRECISION for dfeast_srci and zfeast_hrci Array of length m0 . On output, the first m entries of lambda are eigenvalues found in the interval.
- q
-
On output, q contains all eigenvectors corresponding to lambda .
- m
-
INTEGER The total number of eigenvalues found in the interval [ emin , emax ]: 0 ≤ m ≤ m0 .
- res
-
REAL for sfeast_srci and cfeast_hrci DOUBLE PRECISION for dfeast_srci and zfeast_hrci Array of length m0 . On exit, the first m components contain the relative residual vector:
for i = 0, 1, …, m - 1 , and where m is the total number of eigenvalues found in the search interval.
- info
-
INTEGER If info =0, the execution is successful. If info ≠ 0, see Output Eigensolver info Details .