?tpqrt
?tpqrt
Computes a blocked QR factorization of a real or complex "triangular-pentagonal" matrix, which is composed of a triangular block and a pentagonal block, using the compact WY representation for Q.
Syntax
lapack_int
LAPACKE_stpqrt
(
int
matrix_layout
,
lapack_int
m
,
lapack_int
n
,
lapack_int
l
,
lapack_int
nb
,
float
*
a
,
lapack_int
lda
,
float
*
b
,
lapack_int
ldb
,
float
*
t
,
lapack_int
ldt
);
lapack_int
LAPACKE_dtpqrt
(
int
matrix_layout
,
lapack_int
m
,
lapack_int
n
,
lapack_int
l
,
lapack_int
nb
,
double
*
a
,
lapack_int
lda
,
double
*
b
,
lapack_int
ldb
,
double
*
t
,
lapack_int
ldt
);
lapack_int
LAPACKE_ctpqrt
(
int
matrix_layout
,
lapack_int
m
,
lapack_int
n
,
lapack_int
l
,
lapack_int
nb
,
lapack_complex_float
*
a
,
lapack_int
lda
,
lapack_complex_float
*
b
,
lapack_int
ldb
,
lapack_complex_float
*
t
,
lapack_int
ldt
);
lapack_int
LAPACKE_ztpqrt
(
int
matrix_layout
,
lapack_int
m
,
lapack_int
n
,
lapack_int
l
,
lapack_int
nb
,
lapack_complex_double
*
a
,
lapack_int
lda
,
lapack_complex_double
*
b
,
lapack_int
ldb
,
lapack_complex_double
*
t
,
lapack_int
ldt
);
Include Files
- mkl.h
Description
The input matrix
C
is an (n
+m
)-by-n
matrix
where
A
is an n
-by-n
upper triangular matrix,
and B
is an m
-by-n
pentagonal matrix consisting of an (m
-l
)-by-n
rectangular
matrix B1
on top of an l
-by-n
upper trapezoidal matrix B2
:
The upper trapezoidal matrix
B2
consists of the
first l
rows of an n
-by-n
upper triangular matrix, where 0 ≤ l
≤ min(m
,n
). If l
=0, B
is an m
-by-n
rectangular matrix. If m
=l
=n
, B
is upper
triangular. The elementary reflectors
H(i)
are stored in the i
th column below the diagonal in the (n
+m
)-by-n
input matrix C
. The structure of vectors defining the elementary reflectors is illustrated by:
The elements of the unit matrix
I
are not stored. Thus, V
contains all of the necessary information, and is returned in array b
. Note that
V
has the same form
as B
:
The columns of
V
represent the vectors which
define the H(i)
s. The number of blocks is
k
= ceiling(n
/nb
),
where each block is of order nb
except for the last block,
which is of order ib
= n
- (k
-1)*nb
. For each of the k
blocks, an
upper triangular block reflector factor is computed: T1
, T2
, ..., Tk
.
The nb
-by-nb
(ib
-by-ib
for the last block) Ti
s are stored in the
nb
-by-n
array t
ast
= [T1
T2
... Tk
]Input Parameters
- matrix_layout
- Specifies whether matrix storage layout is row major (LAPACK_ROW_MAJOR) or column major (LAPACK_COL_MAJOR).
- m
- The total number of rows in the matrixB(m≥ 0).
- n
- The number of columns inBand the order of the triangular matrixA(n≥ 0).
- l
- The number of rows of the upper trapezoidal part ofB(min(m,n) ≥l≥ 0).
- nb
- The block size to use in the blockedQRfactorization (n≥nb≥ 1).
- a,b
- Arrays:asizecontains thelda*nn-by-nupper triangular matrixA.bsizemax(1,, the pentagonalldb*n) for column major layout and max(1,ldb*m) for row major layoutm-by-nmatrixB. The first (m-l) rows contain the rectangularB1matrix, and the nextlrows contain the upper trapezoidalB2matrix.
- lda
- The leading dimension ofa; at least max(1,n).
- ldb
- The leading dimension ofb; at least max(1,m)for column major layout and at least max(1,.n) for row major layout
- ldt
- The leading dimension oft; at leastnbfor column major layout and at least max(1,.n) for row major layout
Output Parameters
- a
- The elements on and above the diagonal of the array contain the upper triangular matrixR.
- b
- The pentagonal matrixV.
- t
- Array, size.ldt*nfor column major layout andldt*nbfor row major layoutThe upper triangular block reflectors stored in compact form as a sequence of upper triangular blocks.
Return Values
This function returns a value
info
.If , the execution is successful.
info
=0If , the
info
= -i
i
-th parameter had an illegal value.