Visible to Intel only — GUID: GUID-A0AFD439-22A7-46EE-A06A-9E0D635CC27F
Visible to Intel only — GUID: GUID-A0AFD439-22A7-46EE-A06A-9E0D635CC27F
?tplqt
Computes a blocked LQ factorization of a complex "triangular-pentagonal" matrix composed of a triangular block A and pentagonal block B, using the compact WY representation for Q.
call stplqt(m, n, l, mb, a, lda, b, ldb, t, ldt, work, info)
call dtplqt(m, n, l, mb, a, lda, b, ldb, t, ldt, work, info)
call ctplqt(m, n, l, mb, a, lda, b, ldb, t, ldt, work, info)
call ztplqt(m, n, l, mb, a, lda, b, ldb, t, ldt, work, info)
Description
?tplqt computes a blocked LQ 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 m-by-m 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 number of blocks is B = ceiling(m/mb), where each block is of order mb except for the last block, which is of order ib = m - (m - 1)*mb. For each of the B blocks, a upper triangular block reflector factor is computed:
T1, T2, ..., TB.
The mb-by-mb (and ib-by-ib for the last block) Tis are stored in the mb-by-n array t as
T = [T1T2 ... TB].
Input Parameters
- m
-
INTEGER. The number of rows of the matrix B, and the order of the triangular matrix A. m≥ 0.
- n
-
INTEGER. The number of columns of the matrix B. n≥ 0.
- l
-
INTEGER. The number of rows of the lower trapezoidal part of B. min(m, n) ≥l≥ 0.
- mb
-
INTEGER. The block size to be used in the blocked QR. m≥mb≥ 1.
- a
-
REAL for stplqt
DOUBLE PRECISION for dtplqt
COMPLEX for ctplqt
COMPLEX*16 for ztplqt
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 stplqt
DOUBLE PRECISION for dtplqt
COMPLEX for ctplqt
COMPLEX*16 for ztplqt
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≥mb.
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 stplqt
DOUBLE PRECISION for dtplqt
COMPLEX for ctplqt
COMPLEX*16 for ztplqt
Array of size (ldt,n). The lower triangular block reflectors stored in compact form as a sequence of upper triangular blocks.
- work
-
REAL for stplqt
DOUBLE PRECISION for dtplqt
COMPLEX for ctplqt
COMPLEX*16 for ztplqt
Array of size (mb*m).
- info
-
INTEGER.
info = 0: successful exit.
info < 0: if info = -i, the i-th argument had an illegal value.