Developer Reference for Intel® oneAPI Math Kernel Library for Fortran
?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.
Syntax
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) Ti s 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.