## SYNOPSIS

- SUBROUTINE CLACN2(
- N, V, X, EST, KASE, ISAVE )

- INTEGER KASE, N

- REAL EST

- INTEGER ISAVE( 3 )

- COMPLEX V( * ), X( * )

## PURPOSE

CLACN2 estimates the 1-norm of a square, complex matrix A. Reverse communication is used for evaluating matrix-vector products.## ARGUMENTS

- N (input) INTEGER
- The order of the matrix. N >= 1.
- V (workspace) COMPLEX array, dimension (N)
- On the final return, V = A*W, where EST = norm(V)/norm(W) (W is not returned).
- X (input/output) COMPLEX array, dimension (N)
- On an intermediate return, X should be overwritten by A * X, if KASE=1, A' * X, if KASE=2, where A' is the conjugate transpose of A, and CLACN2 must be re-called with all the other parameters unchanged.
- EST (input/output) REAL
- On entry with KASE = 1 or 2 and ISAVE(1) = 3, EST should be unchanged from the previous call to CLACN2. On exit, EST is an estimate (a lower bound) for norm(A).
- KASE (input/output) INTEGER
- On the initial call to CLACN2, KASE should be 0. On an intermediate return, KASE will be 1 or 2, indicating whether X should be overwritten by A * X or A' * X. On the final return from CLACN2, KASE will again be 0.
- ISAVE (input/output) INTEGER array, dimension (3)
- ISAVE is used to save variables between calls to SLACN2

## FURTHER DETAILS

Contributed by Nick Higham, University of Manchester.Originally named CONEST, dated March 16, 1988.

Reference: N.J. Higham, "FORTRAN codes for estimating the one-norm of a real or complex matrix, with applications to condition estimation", ACM Trans. Math. Soft., vol. 14, no. 4, pp. 381-396, December 1988. Last modified: April, 1999

This is a thread safe version of CLACON, which uses the array ISAVE in place of a SAVE statement, as follows:

CLACON CLACN2

JUMP ISAVE(1)

J ISAVE(2)

ITER ISAVE(3)