p?lasmsub

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

Syntax

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

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

Include Files

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, DIMENSION(desca(lld_),*).

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

desca

(global and local) INTEGER.

Array of DIMENSION (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.


Submit feedback on this help topic