ungtsqr#
Functions
-
void cungtsqr(const INT m, const INT n, const INT mb, const INT nb, c64 *restrict A, const INT lda, c64 *restrict T, const INT ldt, c64 *restrict work, const INT lwork, INT *info)#
CUNGTSQR generates an M-by-N complex matrix Q_out with orthonormal columns, which are the first N columns of a product of complex unitary matrices of order M which are returned by CLATSQR.
See the documentation for CLATSQR.Q_out = first_N_columns_of( Q(1)_in * Q(2)_in * ... * Q(k)_in ).
Parameters
inmThe number of rows of the matrix A. m >= 0.
innThe number of columns of the matrix A. m >= n >= 0.
inmbThe row block size used by CLATSQR to return arrays A and T. mb > n. (Note that if mb > m, then m is used instead of mb as the row block size).
innbThe column block size used by CLATSQR to return arrays A and T. nb >= 1. (Note that if nb > n, then n is used instead of nb as the column block size).
inoutASingle complex array, dimension (lda, n). On entry, the elements on and above the diagonal are not accessed. The elements below the diagonal represent the unit lower-trapezoidal blocked matrix V computed by CLATSQR that defines the input matrices Q_in(k). On exit, the array A contains an M-by-N orthonormal matrix Q_out.
inldaThe leading dimension of the array A. lda >= max(1, m).
inTSingle complex array, dimension (ldt, n * NIRB) where NIRB = Number_of_input_row_blocks = MAX(1, CEIL((m-n)/(mb-n))). The upper-triangular block reflectors used to define the input matrices Q_in(k).
inldtThe leading dimension of the array T. ldt >= max(1, min(nb, n)).
outworkWorkspace array, dimension (max(2, lwork)). On exit, if info = 0, work[0] returns the optimal lwork.
inlworkThe dimension of the array work. lwork >= (m+nb)*n. If lwork = -1, then a workspace query is assumed.
outinfo= 0: successful exit
< 0: if info = -i, the i-th argument had an illegal value
void cungtsqr(
const INT m,
const INT n,
const INT mb,
const INT nb,
c64* restrict A,
const INT lda,
c64* restrict T,
const INT ldt,
c64* restrict work,
const INT lwork,
INT* info
);
Functions
-
void zungtsqr(const INT m, const INT n, const INT mb, const INT nb, c128 *restrict A, const INT lda, c128 *restrict T, const INT ldt, c128 *restrict work, const INT lwork, INT *info)#
ZUNGTSQR generates an M-by-N complex matrix Q_out with orthonormal columns, which are the first N columns of a product of complex unitary matrices of order M which are returned by ZLATSQR.
See the documentation for ZLATSQR.Q_out = first_N_columns_of( Q(1)_in * Q(2)_in * ... * Q(k)_in ).
Parameters
inmThe number of rows of the matrix A. m >= 0.
innThe number of columns of the matrix A. m >= n >= 0.
inmbThe row block size used by ZLATSQR to return arrays A and T. mb > n. (Note that if mb > m, then m is used instead of mb as the row block size).
innbThe column block size used by ZLATSQR to return arrays A and T. nb >= 1. (Note that if nb > n, then n is used instead of nb as the column block size).
inoutADouble complex array, dimension (lda, n). On entry, the elements on and above the diagonal are not accessed. The elements below the diagonal represent the unit lower-trapezoidal blocked matrix V computed by ZLATSQR that defines the input matrices Q_in(k). On exit, the array A contains an M-by-N orthonormal matrix Q_out.
inldaThe leading dimension of the array A. lda >= max(1, m).
inTDouble complex array, dimension (ldt, n * NIRB) where NIRB = Number_of_input_row_blocks = MAX(1, CEIL((m-n)/(mb-n))). The upper-triangular block reflectors used to define the input matrices Q_in(k).
inldtThe leading dimension of the array T. ldt >= max(1, min(nb, n)).
outworkWorkspace array, dimension (max(2, lwork)). On exit, if info = 0, work[0] returns the optimal lwork.
inlworkThe dimension of the array work. lwork >= (m+nb)*n. If lwork = -1, then a workspace query is assumed.
outinfo= 0: successful exit
< 0: if info = -i, the i-th argument had an illegal value
void zungtsqr(
const INT m,
const INT n,
const INT mb,
const INT nb,
c128* restrict A,
const INT lda,
c128* restrict T,
const INT ldt,
c128* restrict work,
const INT lwork,
INT* info
);