-
template<typename T>
void latrz(integer *m, integer *n, integer *l, T *a, integer *lda, T *tau, T *work)# LATRZ factors an upper trapezoidal matrix by means of orthogonal transformations.
Purpose:
LATRZ factors the M-by-(M+L) real upper trapezoidal matrix [ A1 A2 ] = [ A(1:M,1:M) A(1:M,N-L+1:N) ] as (R 0) * Z, by means of orthogonal transformations. Z is an (M+L)-by-(M+L) orthogonal matrix and, R and A1 are M-by-M upper triangular matrices.
- Parameters:
M – [in]
M is INTEGER
The number of rows of the matrix A. M >= 0.
N – [in]
N is INTEGER
The number of columns of the matrix A. N >= 0.
L – [in]
L is INTEGER
The number of columns of the matrix A containing the meaningful part of the Householder vectors. N-M >= L >= 0.
A – [inout]
A is REAL array, dimension (LDA,N)
On entry, the leading M-by-N upper trapezoidal part of the array A must contain the matrix to be factorized. On exit, the leading M-by-M upper triangular part of A contains the upper triangular matrix R, and elements N-L+1 to N of the first M rows of A, with the array TAU, represent the orthogonal matrix Z as a product of M elementary reflectors.
LDA – [in]
LDA is INTEGER
The leading dimension of the array A. LDA >= fla_max(1,M).
TAU – [out]
TAU is REAL array, dimension (M)
The scalar factors of the elementary reflectors.
WORK – [out] WORK is REAL array, dimension (M)