## SYNOPSIS

- SUBROUTINE DLACN2(
- N, V, X, ISGN, EST, KASE, ISAVE )

- INTEGER KASE, N

- DOUBLE PRECISION EST

- INTEGER ISGN( * ), ISAVE( 3 )

- DOUBLE PRECISION V( * ), X( * )

## PURPOSE

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

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

## FURTHER DETAILS

Contributed by Nick Higham, University of Manchester.Originally named SONEST, 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. This is a thread safe version of DLACON, which uses the array ISAVE in place of a SAVE statement, as follows:

DLACON DLACN2

JUMP ISAVE(1)

J ISAVE(2)

ITER ISAVE(3)