?lacn2

Estimates the 1-norm of a square matrix, using reverse communication for evaluating matrix-vector products.

Syntax

call slacn2( n, v, x, isgn, est, kase, isave )

call dlacn2( n, v, x, isgn, est, kase, isave )

call clacn2( n, v, x, est, kase, isave )

call zlacn2( n, v, x, est, kase, isave )

Include Files

  • Fortran: mkl.fi
  • C: mkl.h

Description

The routine estimates the 1-norm of a square, real or complex matrix A. Reverse communication is used for evaluating matrix-vector products.

Input Parameters

n

INTEGER. The order of the matrix A (n 1).

v, x

REAL for slacn2

DOUBLE PRECISION for dlacn2

COMPLEX for clacn2

DOUBLE COMPLEX for zlacn2.

Arrays, DIMENSION (n) each.

v is a workspace array.

x is used as input after an intermediate return.

isgn

INTEGER.

Workspace array, DIMENSION (n), used with real flavors only.

est

REAL for slacn2/clacn2

DOUBLE PRECISION for dlacn2/zlacn2

On entry with kase set to 1 or 2, and isave(1) = 1, est must be unchanged from the previous call to the routine.

kase

INTEGER.

On the initial call to the routine, kase must be set to 0.

isave

INTEGER. Array, DIMENSION (3).

Contains variables from the previous call to the routine.

Output Parameters

est

An estimate (a lower bound) for norm(A).

kase

On an intermediate return, kase is set to 1 or 2, indicating whether x is overwritten by A*x or AT*x for real flavors and A*x or AH*x for complex flavors.

On the final return, kase is set to 0.

v

On the final return, v = A*w, where est = norm(v)/norm(w) (w is not returned).

x

On an intermediate return, x is overwritten by

A*x, if kase = 1,

AT*x, if kase = 2 (for real flavors),

AH*x, if kase = 2 (for complex flavors),

and the routine must be re-called with all the other parameters unchanged.

isave

This parameter is used to save variables between calls to the routine.

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