?orgbr
?orgbr
Generates the real orthogonal matrix determined by .
Q
or P
T
?gebrd
Syntax
lapack_int
LAPACKE_sorgbr
(
int
matrix_layout
,
char
vect
,
lapack_int
m
,
lapack_int
n
,
lapack_int
k
,
float
*
a
,
lapack_int
lda
,
const
float
*
tau
);
lapack_int
LAPACKE_dorgbr
(
int
matrix_layout
,
char
vect
,
lapack_int
m
,
lapack_int
n
,
lapack_int
k
,
double
*
a
,
lapack_int
lda
,
const
double
*
tau
);
Include Files
- mkl.h
Description
The routine generates the whole or part of the orthogonal matrices formed by the routines . All valid combinations of arguments are described in
Q
and P
T
gebrd
. Use this routine after a call to sgebrd
/dgebrd
Input parameters
. In most cases you need the following:To compute the whole
m
-by-m
matrix Q
: LAPACKE_?orgbr(matrix_layout, 'Q', m, m, n, a, lda, tau )
(note that the array
a
must have at least m
columns).To form the :
n
leading columns of Q
if m
> n
LAPACKE_?orgbr(matrix_layout, 'Q', m, n, n, a, lda, tau )
To compute the whole :
n
-by-n
matrix P
T
LAPACKE_?orgbr(matrix_layout, 'P', n, n, m, a, lda, tau )
(note that the array
a
must have at least n
rows).To form the if :
m
leading rows of P
T
m
< n
LAPACKE_?orgbr(matrix_layout, 'P', m, n, m, a, lda, tau )
Input Parameters
- matrix_layout
- Specifies whether matrix storage layout is row major (LAPACK_ROW_MAJOR) or column major (LAPACK_COL_MAJOR).
- vect
- Must be'Q'or'P'.If, the routine generates the matrixvect='Q'Q.If, the routine generates the matrixvect='P'P.T
- m, n
- The number of rows (m) and columns (n) in the matrixQorPto be returned (T,m≥0).n≥0If,vect='Q'.m≥n≥ min(m,k)If,vect='P'.n≥m≥ min(n,k)
- k
- a
- Array, size at leastThe vectors which define the elementary reflectors, as returned by gebrd.lda*nfor column major layout andlda*mfor row major layout.
- lda
- The leading dimension of the arraya.lda≥ max(1,m)for column major layout and at least max(1,.n) for row major layout
- tau
- Array, sizemin (,m,k) ifvect='Q'min (. Scalar factor of the elementary reflectorn,k) ifvect='P'H(i) orG(i), which determinesQandPas returned byTgebrdin the arraytauqortaup.
Output Parameters
- a
- Overwritten by the orthogonal matrixQorP(or the leading rows or columns thereof) as specified byTvect,m, andn.
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.Application Notes
The computed matrix
Q
differs from an exactly orthogonal matrix by a matrix E
such that ||
.E
||2
= O
(ε
)The approximate numbers of floating-point operations for the cases listed in
Description
are as follows:To form the whole of
Q
:(4/3)*
if n
*(3m
2
- 3m
*n
+ n
2
)m
> n
(4/3)*
if m
3
m
≤
n
To form the :
n
leading columns of Q
when m
> n
(2/3)*
if n
2
*(3m
- n
)m
> n
To form the whole of :
P
T
(4/3)*
if n
3
m
≥
n
(4/3)*
if m
*(3n
2
- 3m
*n
+ m
2
)m
< n
.To form the when :
m
leading columns of P
T
m
< n
(2/3)*
if n
2
*(3m
- n
)m
> n
The complex counterpart of this routine is ungbr.