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