Developer Reference for Intel® oneAPI Math Kernel Library for Fortran

ID 766686
Date 10/31/2024
Public
Document Table of Contents

p?laiect

Exploits IEEE arithmetic to accelerate the computations of eigenvalues. (C interface function).

Syntax

void pslaiect(float *sigma, int *n, float *d, int *count);

void pdlaiectb(float *sigma, int *n, float *d, int *count);

void pdlaiectl(float *sigma, int *n, float *d, int *count);

Description

The p?laiectroutine computes the number of negative eigenvalues of (A- σI). This implementation of the Sturm Sequence loop exploits IEEE arithmetic and has no conditionals in the innermost loop. The signbit for real routine pslaiect is assumed to be bit 32. Double-precision routines pdlaiectb and pdlaiectl differ in the order of the double precision word storage and, consequently, in the signbit location. For pdlaiectb, the double precision word is stored in the big-endian word order and the signbit is assumed to be bit 32. For pdlaiectl, the double precision word is stored in the little-endian word order and the signbit is assumed to be bit 64.

Note that all arguments are call-by-reference so that this routine can be directly called from Fortran code.

This is a ScaLAPACK internal subroutine and arguments are not checked for unreasonable values.

Input Parameters

sigma

REALfor pslaiect

DOUBLE PRECISIONfor pdlaiectb/pdlaiectl.

The shift. p?laiect finds the number of eigenvalues less than equal to sigma.

n

INTEGER. The order of the tridiagonal matrix T. n 1.

d

REALfor pslaiect

DOUBLE PRECISION for pdlaiectb/pdlaiectl.

Array of size 2n-1.

On entry, this array contains the diagonals and the squares of the off-diagonal elements of the tridiagonal matrix T. These elements are assumed to be interleaved in memory for better cache performance. The diagonal entries of T are in the entries d(1), d(3),..., d(2n-1), while the squares of the off-diagonal entries are d(2), d(4), ..., d(2n-2). To avoid overflow, the matrix must be scaled so that its largest entry is no greater than overflow(1/2) * underflow(1/4) in absolute value, and for greatest accuracy, it should not be much smaller than that.

Output Parameters

n

INTEGER. The count of the number of eigenvalues of T less than or equal to sigma.

See Also