Developer Reference for Intel® oneAPI Math Kernel Library for Fortran

ID 766686
Date 7/13/2023
Public

A newer version of this document is available. Customers should click here to go to the newest version.

Document Table of Contents

?feast_scsrgv/?feast_hcsrgv

Extended Eigensolver interface for generalized eigenvalue problem with sparse matrices.

Syntax

call sfeast_scsrgv(uplo, n, a, ia, ja, b, ib, jb, fpm, epsout, loop, emin, emax, m0, e, x, m, res, info)

call dfeast_scsrgv(uplo, n, a, ia, ja, b, ib, jb, fpm, epsout, loop, emin, emax, m0, e, x, m, res, info)

call cfeast_hcsrgv(uplo, n, a, ia, ja, b, ib, jb, fpm, epsout, loop, emin, emax, m0, e, x, m, res, info)

call zfeast_hcsrgv(uplo, n, a, ia, ja, b, ib, jb, fpm, epsout, loop, emin, emax, m0, e, x, m, res, info)

Include Files

  • mkl.fi

Description

The routines compute all the eigenvalues and eigenvectors for generalized eigenvalue problems, Ax = λBx, within a given search interval.

NOTE:

Both matrices A and B must use the same family of storage format. The position of the non-zero elements can be different (CSR coordinates ib and jb can be different from ia and ja).

Input Parameters

uplo

CHARACTER*1

Must be 'U' or 'L' or 'F' .

If UPLO = 'U', a and b store the upper triangular parts of A and B respectively.

If UPLO = 'L', a and b store the lower triangular parts of A and B respectively.

If UPLO= 'F', a and b store the full matrices A and B respectively.

n

INTEGER

Sets the size of the problem. n > 0.

a

REAL for sfeast_scsrgv

DOUBLE PRECISION for dfeast_scsrgv

COMPLEX for cfeast_hcsrgv

COMPLEX*16 for zfeast_hcsrgv

Array containing the nonzero elements of either the full matrix A or the upper or lower triangular part of the matrix A, as specified by uplo.

ia

INTEGER

Array of length n + 1, containing indices of elements in the array a , such that ia(i) is the index in the array a of the first non-zero element from the row i . The value of the last element ia(n + 1) is equal to the number of non-zeros plus one.

ja

INTEGER

Array containing the column indices for each non-zero element of the matrix A being represented in the array a . Its length is equal to the length of the array a.

b

REAL for sfeast_scsrgv

DOUBLE PRECISION for dfeast_scsrgv

COMPLEX for cfeast_hcsrgv

COMPLEX*16 for zfeast_hcsrgv

Array of dimension ldb by *, contains the nonzero elements of either the full matrix B or the upper or lower triangular part of the matrix B, as specified by uplo.

ib

INTEGER

Array of length n + 1, containing indices of elements in the array b , such that ib(i) is the index in the array b of the first non-zero element from the row i . The value of the last element ib(n + 1) is equal to the number of non-zeros plus one.

jb

INTEGER

Array containing the column indices for each non-zero element of the matrix B being represented in the array b . Its length is equal to the length of the array b.

fpm

INTEGER

Array, dimension 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_scsrgv and cfeast_hcsrgv

DOUBLE PRECISION for dfeast_scsrgv and zfeast_hcsrgv

The lower and upper bounds of the interval to be searched for eigenvalues; eminemax.

NOTE:
Users are advised to avoid situations in which eigenvalues nearly coincide with the interval endpoints. This may lead to unpredictable selection or omission of such eigenvalues. Users should instead specify a slightly larger interval than needed and, if required, pick valid eigenvalues and their corresponding eigenvectors for subsequent use.
m0

INTEGER

On entry, specifies the initial guess for subspace dimension to be used, 0 < m0n. Set m0m 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.

x

REAL for sfeast_scsrgv

DOUBLE PRECISION for dfeast_scsrgv

COMPLEX for cfeast_hcsrgv

COMPLEX*16 for zfeast_hcsrgv

On entry, if fpm(5)=1, the array x(n, m) contains a basis of guess subspace where n is the order of the input matrix.

Output Parameters

fpm

On output, the last 64 values correspond to Intel® oneAPI Math Kernel Library (oneMKL) PARDISOiparm(1) to iparm(64) (regardless of the value of fpm(64) on input).

epsout

REAL for sfeast_scsrgv and cfeast_hcsrgv

DOUBLE PRECISION for dfeast_scsrgv and zfeast_hcsrgv

On output, contains the relative error on the trace: |tracei - tracei-1| /max(|emin|, |emax|)

loop

INTEGER

On output, contains the number of refinement loop executed. Ignored on input.

e

REAL for sfeast_scsrgv and cfeast_hcsrgv

DOUBLE PRECISION for dfeast_scsrgv and zfeast_hcsrgv

Array of length m0. On output, the first m entries of e are eigenvalues found in the interval.

x

On output, the first m columns of x contain the orthonormal eigenvectors corresponding to the computed eigenvalues e, with the i-th column of x holding the eigenvector associated with e(i).

m

INTEGER

The total number of eigenvalues found in the interval [emin, emax]: 0 ≤ mm0.

res

REAL for sfeast_scsrgv and cfeast_hcsrgv

DOUBLE PRECISION for dfeast_scsrgv and zfeast_hcsrgv

Array of length m0. On exit, the first m components contain the relative residual vector:

for i=1, 2, …, m, 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.