# ?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 )

## Description

This 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

  COMPLEX*16 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 A'*x.

  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`,

  `A'*x` , if `kase = 2`,

  (A' is the conjugate transpose of A), 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.

Parent topic: Auxiliary Routines