naginterfaces.library.lapackeig.ztpqrt

naginterfaces.library.lapackeig.ztpqrt(l, nb, a, b)[source]

ztpqrt computes the factorization of a complex triangular-pentagonal matrix.

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

https://support.nag.com/numeric/nl/nagdoc_30.2/flhtml/f08/f08bpf.html

Parameters
lint

, the number of rows of the trapezoidal part of (i.e., ).

nbint

The explicitly chosen block-size to be used in the algorithm for computing the factorization. See Further Comments for details.

acomplex, array-like, shape

The upper triangular matrix .

bcomplex, array-like, shape

The pentagonal matrix composed of an rectangular matrix above an upper trapezoidal matrix .

Returns
acomplex, ndarray, shape

The upper triangle is overwritten by the corresponding elements of the upper triangular matrix .

bcomplex, ndarray, shape

Details of the unitary matrix .

tcomplex, ndarray, shape

Further details of the unitary matrix . The number of blocks is , where and each block is of order except for the last block, which is of order . For each of the blocks, an upper triangular block reflector factor is computed: . These are stored in the matrix as .

Raises
NagValueError
(errno )

On entry, error in parameter .

Constraint: .

(errno )

On entry, error in parameter .

Constraint: .

(errno )

On entry, error in parameter .

Constraint: .

(errno )

On entry, error in parameter .

Constraint: .

(errno )

On entry, error in parameter .

Constraint: .

Notes

ztpqrt forms the factorization of a complex triangular-pentagonal matrix ,

where is an upper triangular matrix and is an pentagonal matrix consisting of an rectangular matrix on top of an upper trapezoidal matrix :

The upper trapezoidal matrix consists of the first rows of an upper triangular matrix, where . If , is rectangular; if and , is upper triangular.

A recursive, explicitly blocked, factorization (see zgeqrt()) is performed on the matrix . The upper triangular matrix , details of the unitary matrix , and further details (the block reflector factors) of are returned.

Typically the matrix or contains the matrix from the factorization of a subproblem and ztpqrt performs the update operation from the inclusion of matrix .

For example, consider the factorization of an matrix with : , , where is upper triangular and is rectangular (this can be performed by zgeqrt()). Given an initial least squares problem where and are matrices, we have .

Now, adding an additional rows to the original system gives the augmented least squares problem

where is an matrix formed by adding rows on top of and is an matrix formed by adding rows on top of .

ztpqrt can then be used to perform the factorization of the pentagonal matrix ; the matrix will be zero on input and contain on output.

In the case where is , , is upper triangular (forming ) on top of rows of zeros (forming first rows of ). Augmentation is then performed by adding rows to the bottom of with .

References

Elmroth, E and Gustavson, F, 2000, Applying Recursion to Serial and Parallel Factorization Leads to Better Performance, IBM Journal of Research and Development. (Volume 44) (4), 605–624

Golub, G H and Van Loan, C F, 2012, Matrix Computations, (4th Edition), Johns Hopkins University Press, Baltimore