Developer Reference for Intel® oneAPI Math Kernel Library for C

ID 766684
Date 11/07/2023
Public

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

Document Table of Contents

p?laconsb

Looks for two consecutive small subdiagonal elements.

Syntax

void pslaconsb (const float *a, const MKL_INT *desca, const MKL_INT *i, const MKL_INT *l, MKL_INT *m, const float *h44, const float *h33, const float *h43h34, float *buf, const MKL_INT *lwork );

void pdlaconsb (const double *a, const MKL_INT *desca, const MKL_INT *i, const MKL_INT *l, MKL_INT *m, const double *h44, const double *h33, const double *h43h34, double *buf, const MKL_INT *lwork );

void pclaconsb (const MKL_Complex8 *a , const MKL_INT *desca , const MKL_INT *i , const MKL_INT *l , MKL_INT *m , const MKL_Complex8 *h44 , const MKL_Complex8 *h33 , const MKL_Complex8 *h43h34 , MKL_Complex8 *buf , const MKL_INT *lwork );

void pzlaconsb (const MKL_Complex16 *a , const MKL_INT *desca , const MKL_INT *i , const MKL_INT *l , MKL_INT *m , const MKL_Complex16 *h44 , const MKL_Complex16 *h33 , const MKL_Complex16 *h43h34 , MKL_Complex16 *buf , const MKL_INT *lwork );

Include Files

  • mkl_scalapack.h

Description

The p?laconsbfunction looks for two consecutive small subdiagonal elements by analyzing the effect of starting a double shift QR iteration given by h44, h33, and h43h34 to see if this process makes a subdiagonal negligible.

Input Parameters

a

(local)

Array of size lld_a*LOCc(n_a). On entry, the Hessenberg matrix whose tridiagonal part is being scanned. Unchanged on exit.

desca

(global and local)

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

i

(global)

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

l

(global)

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

h44, h33, h43h34

(global).

These three values are for the double shift QR iteration.

lwork

(local)

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

Output Parameters

m

(global). On exit, this yields the starting location of the QR double shift. This will satisfy:

lmi-2.

buf

(local).

Array of size lwork.

See Also