naginterfaces.library.lapacklin.zppequ

naginterfaces.library.lapacklin.zppequ(uplo, n, ap)[source]

zppequ computes a diagonal scaling matrix intended to equilibrate a complex Hermitian positive definite matrix , stored in packed format, and reduce its condition number.

For full information please refer to the NAG Library document for f07gt

https://support.nag.com/numeric/nl/nagdoc_30.3/flhtml/f07/f07gtf.html

Parameters
uplostr, length 1

Indicates whether the upper or lower triangular part of is stored in the array , as follows:

The upper triangle of is stored.

The lower triangle of is stored.

nint

, the order of the matrix .

apcomplex, array-like, shape

The Hermitian matrix , packed by columns.

Only the elements of corresponding to the diagonal elements are referenced.

Returns
sfloat, ndarray, shape

If no exception or warning is raised, contains the diagonal elements of the scaling matrix .

scondfloat

If no exception or warning is raised, contains the ratio of the smallest value of to the largest value of . If and is neither too large nor too small, it is not worth scaling by .

amaxfloat

. If is very close to overflow or underflow, the matrix should be scaled.

Raises
NagValueError
(errno )

On entry, error in parameter .

Constraint: or .

(errno )

On entry, error in parameter .

Constraint: .

(errno )

The th diagonal element of is not positive (and hence cannot be positive definite).

Notes

zppequ computes a diagonal scaling matrix chosen so that

This means that the matrix given by

has diagonal elements equal to unity. This in turn means that the condition number of , , is within a factor of the matrix of smallest possible condition number over all possible choices of diagonal scalings (see Corollary 7.6 of Higham (2002)).

References

Higham, N J, 2002, Accuracy and Stability of Numerical Algorithms, (2nd Edition), SIAM, Philadelphia