naginterfaces.library.lapackeig.dtpqrt

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

dtpqrt computes the factorization of a real triangular-pentagonal matrix.

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

https://support.nag.com/numeric/nl/nagdoc_30.2/flhtml/f08/f08bbf.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.

afloat, array-like, shape

The upper triangular matrix .

bfloat, array-like, shape

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

Returns
afloat, ndarray, shape

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

bfloat, ndarray, shape

Details of the orthogonal matrix .

tfloat, ndarray, shape

Further details of the orthogonal 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

dtpqrt forms the factorization of a real 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 dgeqrt()) is performed on the matrix . The upper triangular matrix , details of the orthogonal 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 dtpqrt 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 dgeqrt()). 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 .

dtpqrt 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