F08KFF (DORGBR) generates one of the real orthogonal matrices
Q or
PT which were determined by
F08KEF (DGEBRD) when reducing a real matrix to bidiagonal form.
F08KFF (DORGBR) is intended to be used after a call to
F08KEF (DGEBRD), which reduces a real rectangular matrix
A to bidiagonal form
B by an orthogonal transformation:
A=QBPT.
F08KEF (DGEBRD) represents the matrices
Q and
PT as products of elementary reflectors.
The various possibilities are specified by the parameters
VECT,
M,
N and
K. The appropriate values to cover the most likely cases are as follows (assuming that
A was an
m by
n matrix):
- To form the full m by m matrix Q:
CALL DORGBR('Q',m,m,n,...)
(note that the array A must have at least m columns).
- If m>n, to form the n leading columns of Q:
CALL DORGBR('Q',m,n,n,...)
- To form the full n by n matrix PT:
CALL DORGBR('P',n,n,m,...)
(note that the array A must have at least n rows).
- If m<n, to form the m leading rows of PT:
CALL DORGBR('P',m,n,m,...)
Golub G H and Van Loan C F (1996)
Matrix Computations (3rd Edition) Johns Hopkins University Press, Baltimore
The computed matrix
Q differs from an exactly orthogonal matrix by a matrix
E such that
where
ε is the
machine precision. A similar statement holds for the computed matrix
PT.
The total number of floating point operations for the cases listed in
Section 3 are approximately as follows:
- To form the whole of Q:
- 43n3m2-3mn+n2 if m>n,
- 43m3 if m≤n;
- To form the n leading columns of Q when m>n:
- To form the whole of PT:
- 43n3 if m≥n,
- 43m3n2-3mn+m2 if m<n;
- To form the m leading rows of PT when m<n:
The complex analogue of this routine is
F08KTF (ZUNGBR).
For this routine two examples are presented, both of which involve computing the singular value decomposition of a matrix
A, where
in the first example and
in the second.
A must first be reduced to tridiagonal form by
F08KEF (DGEBRD). The program then calls F08KFF (DORGBR) twice to form
Q and
PT, and passes these matrices to
F08MEF (DBDSQR), which computes the singular value decomposition of
A.