public interface orgtsqr_row
ORGTSQR_ROW generates an M-by-N real matrix Q_out with
orthonormal columns from the output of DLATSQR. These N orthonormal
columns are the first N columns of a product of complex unitary
matrices Q(k)_in of order M, which are returned by DLATSQR in
a special format.
Q_out = first_N_columns_of( Q(1)_in * Q(2)_in * ... * Q(k)_in ).
The input matrices Q(k)_in are stored in row and column blocks in A.
See the documentation of DLATSQR for more details on the format of
Q(k)_in, where each Q(k)_in is represented by block Householder
transformations. This routine calls an auxiliary routine DLARFB_GETT,
where the computation is performed on each individual block. The
algorithm first sweeps NB-sized column blocks from the right to left
starting in the bottom row block and continues to the top row block
(hence _ROW in the routine name). This sweep is in reverse order of
the order in which DLATSQR generates the output blocks.
Subroutines
Arguments
| Type |
Intent | Optional | Attributes |
|
Name |
|
|
integer(kind=ilp),
|
intent(in) |
|
|
:: |
m |
|
|
integer(kind=ilp),
|
intent(in) |
|
|
:: |
n |
|
|
integer(kind=ilp),
|
intent(in) |
|
|
:: |
mb |
|
|
integer(kind=ilp),
|
intent(in) |
|
|
:: |
nb |
|
|
real(kind=dp),
|
intent(inout) |
|
|
:: |
a(lda,*) |
|
|
integer(kind=ilp),
|
intent(in) |
|
|
:: |
lda |
|
|
real(kind=dp),
|
intent(in) |
|
|
:: |
t(ldt,*) |
|
|
integer(kind=ilp),
|
intent(in) |
|
|
:: |
ldt |
|
|
real(kind=dp),
|
intent(out) |
|
|
:: |
work(*) |
|
|
integer(kind=ilp),
|
intent(in) |
|
|
:: |
lwork |
|
|
integer(kind=ilp),
|
intent(out) |
|
|
:: |
info |
|
Arguments
| Type |
Intent | Optional | Attributes |
|
Name |
|
|
integer(kind=ilp),
|
intent(in) |
|
|
:: |
m |
|
|
integer(kind=ilp),
|
intent(in) |
|
|
:: |
n |
|
|
integer(kind=ilp),
|
intent(in) |
|
|
:: |
mb |
|
|
integer(kind=ilp),
|
intent(in) |
|
|
:: |
nb |
|
|
real(kind=sp),
|
intent(inout) |
|
|
:: |
a(lda,*) |
|
|
integer(kind=ilp),
|
intent(in) |
|
|
:: |
lda |
|
|
real(kind=sp),
|
intent(in) |
|
|
:: |
t(ldt,*) |
|
|
integer(kind=ilp),
|
intent(in) |
|
|
:: |
ldt |
|
|
real(kind=sp),
|
intent(out) |
|
|
:: |
work(*) |
|
|
integer(kind=ilp),
|
intent(in) |
|
|
:: |
lwork |
|
|
integer(kind=ilp),
|
intent(out) |
|
|
:: |
info |
|
Module Procedures