Developer Reference for Intel® oneAPI Math Kernel Library for Fortran

ID 766686
Date 7/13/2023
Public

A newer version of this document is available. Customers should click here to go to the newest version.

Document Table of Contents

?tplqt2

?tplqt2 computes an LQ factorization of a real or complex "triangular-pentagonal" matrix, which is composed of a triangular block and a pentagonal using the compact WY representation for Q.

call stplqt2(m, n, l, a, lda, b, ldb, t, ldt, info)

call dtplqt2(m, n, l, a, lda, b, ldb, t, ldt, info)

call ctplqt2(m, n, l, a, lda, b, ldb, t, ldt, info)

call ztplqt2(m, n, l, a, lda, b, ldb, t, ldt, info)

Description

?tplqt2 computes a LQ a factorization of a real or complex "triangular-pentagonal" matrix C, which is composed of a triangular block A and pentagonal block B, using the compact WY representation for Q.

The input matrix C is an m-by-(m+n) matrix:

C = [ A ] [ B ]

where A is a lower triangular m-by-m matrix, and B is an m-by-n pentagonal matrix consisting of an m-by-(n-l) rectangular matrix B1 to the left of an m-by-l lower trapezoidal matrix B2:

[ B ] = [ B1 ] [ B2 ]

[B1 ] <- m-by-(n-l) rectangular

[ B2 ] <- m-by-l lower trapezoidal.

The lower trapezoidal matrix B2 consists of the first l columns of an n-by-n lower triangular matrix, where 0 l min(m,n). If l=0, b is rectangular m-by-n; if m=l=n, b is lower triangular.

The matrix W stores the elementary reflectors H(i) in the i-th row above the diagonal (of A) in the m-by-(m+n) input matrix C:

[ C ] = [ A ] [ B ]

[ A ] <- lower triangular m-by-m

[ B ] <- m-by-n pentagonal

so that W can be represented as

[ W ] = [ I ] [ V ]

[ I ] <- m-by-m identity matrix

[ V ] <- m-by-n, same form as B.

Thus, all of information needed for W is contained on exit in the array b, called V in the preceding. Note that V has the same form as B; that is,

[ V ] = [ V1 ] [ V2 ]

[ V1 ] <- m-by-(n-l) rectangular

[ V2 ] <- m-by-l lower trapezoidal.

The rows of V represent the vectors which define the H(i) elementary reflectors .

The (m+n)-by-(m+n) block reflector H is then given by H = I - WH * T * W where WH is the conjugate transpose of W and T is the upper triangular factor of the block reflector.

Input Parameters

m

INTEGER. The total number of rows of the matrix B. m 0.

n

INTEGER. The number of columns of the matrix B, and the order of the triangular matrix A. n 0.

l

INTEGER. The number of rows of the lower trapezoidal part of B. min(m, n) l 0.

a

REAL for stplqt2

DOUBLE PRECISION for dtplqt2

COMPLEX for ctplqt2

COMPLEX*16 for ztplqt2

Array of size (lda,m). On entry, the lower triangular m-by-m matrix A.

lda

INTEGER. The leading dimension of the array a. lda max(1, m).

b

REAL for stplqt2

DOUBLE PRECISION for dtplqt2

COMPLEX for ctplqt2

COMPLEX*16 for ztplqt2

Array of size (ldb,n). On entry, the pentagonal m-by-n matrix B. The first n-l columns are rectangular, and the last l columns are lower trapezoidal.

ldb

INTEGER. The leading dimension of the array b. ldb max(1, m).

ldt

INTEGER. The leading dimension of the array t. ldt max(1, m)

Output Parameters

a

On exit, the elements on and below the diagonal of the array contain the lower triangular matrix L.

b

On exit, b contains the pentagonal matrix V.

t

REAL for stplqt2

DOUBLE PRECISION for dtplqt2

COMPLEX for ctplqt2

COMPLEX*16 for ztplqt2

Array of size (ldt,m). The n-by-n upper triangular factor T of the block reflector.

info

INTEGER.

info = 0: successful exit.

info < 0: if info = -i, the i-th argument had an illegal value.