p?lasmsub

Looks for a small subdiagonal element from the bottom of the matrix that it can safely set to zero.

Syntax

Fortran:

call pslasmsub(a, desca, i, l, k, smlnum, buf, lwork)

call pdlasmsub(a, desca, i, l, k, smlnum, buf, lwork)

C:

void pslasmsub (float *a , MKL_INT *desca , MKL_INT *i , MKL_INT *l , MKL_INT *k , float *smlnum , float *buf , MKL_INT *lwork );

void pdlasmsub (double *a , MKL_INT *desca , MKL_INT *i , MKL_INT *l , MKL_INT *k , double *smlnum , double *buf , MKL_INT *lwork );

Include Files

  • C: mkl_scalapack.h

Description

The p?lasmsub routine looks for a small subdiagonal element from the bottom of the matrix that it can safely set to zero. This routine does a global maximum and must be called by all processes.

Input Parameters

a

(global)

REAL for pslasmsub

DOUBLE PRECISION for pdlasmsub

Array, size(desca(lld_),*).

On entry, the Hessenberg matrix whose tridiagonal part is being scanned. Unchanged on exit.

desca

(global and local) INTEGER.

Array of size (dlen_). The array descriptor for the distributed matrix A.

i

(global) INTEGER.

The global location of the bottom of the unreduced submatrix of A. Unchanged on exit.

l

(global) INTEGER.

The global location of the top of the unreduced submatrix of A.

Unchanged on exit.

smlnum

(global)

REAL for pslasmsub

DOUBLE PRECISION for pdlasmsub

On entry, a "small number" for the given matrix. Unchanged on exit. A suggested value for smlnum is slamch('s') * (n/slamch('p') for pslasmsub or dlamch('s') * (n/dlamch('p') for pdlasmsub. See lamch.

lwork

(global) INTEGER.

On exit, lwork is the size of the work buffer.

This must be at least 2*ceil(ceil((i-l)/hbl )/ lcm(nprow,npcol)). Here lcm is least common multiple, and nprow x npcol is the logical grid size.

Output Parameters

k

(global) INTEGER.

On exit, this yields the bottom portion of the unreduced submatrix. This will satisfy: lmi-1.

buf

(local).

REAL for pslasmsub

DOUBLE PRECISION for pdlasmsub

Array of size lwork.

For more complete information about compiler optimizations, see our Optimization Notice.