LAPACK 3.11.0
LAPACK: Linear Algebra PACKage

subroutine dtpqrt  (  integer  M, 
integer  N,  
integer  L,  
integer  NB,  
double precision, dimension( lda, * )  A,  
integer  LDA,  
double precision, dimension( ldb, * )  B,  
integer  LDB,  
double precision, dimension( ldt, * )  T,  
integer  LDT,  
double precision, dimension( * )  WORK,  
integer  INFO  
) 
DTPQRT
Download DTPQRT + dependencies [TGZ] [ZIP] [TXT]
DTPQRT computes a blocked QR factorization of a real "triangularpentagonal" matrix C, which is composed of a triangular block A and pentagonal block B, using the compact WY representation for Q.
[in]  M  M is INTEGER The number of rows of the matrix B. M >= 0. 
[in]  N  N is INTEGER The number of columns of the matrix B, and the order of the triangular matrix A. N >= 0. 
[in]  L  L is INTEGER The number of rows of the upper trapezoidal part of B. MIN(M,N) >= L >= 0. See Further Details. 
[in]  NB  NB is INTEGER The block size to be used in the blocked QR. N >= NB >= 1. 
[in,out]  A  A is DOUBLE PRECISION array, dimension (LDA,N) On entry, the upper triangular NbyN matrix A. On exit, the elements on and above the diagonal of the array contain the upper triangular matrix R. 
[in]  LDA  LDA is INTEGER The leading dimension of the array A. LDA >= max(1,N). 
[in,out]  B  B is DOUBLE PRECISION array, dimension (LDB,N) On entry, the pentagonal MbyN matrix B. The first ML rows are rectangular, and the last L rows are upper trapezoidal. On exit, B contains the pentagonal matrix V. See Further Details. 
[in]  LDB  LDB is INTEGER The leading dimension of the array B. LDB >= max(1,M). 
[out]  T  T is DOUBLE PRECISION array, dimension (LDT,N) The upper triangular block reflectors stored in compact form as a sequence of upper triangular blocks. See Further Details. 
[in]  LDT  LDT is INTEGER The leading dimension of the array T. LDT >= NB. 
[out]  WORK  WORK is DOUBLE PRECISION array, dimension (NB*N) 
[out]  INFO  INFO is INTEGER = 0: successful exit < 0: if INFO = i, the ith argument had an illegal value 
The input matrix C is a (N+M)byN matrix C = [ A ] [ B ] where A is an upper triangular NbyN matrix, and B is MbyN pentagonal matrix consisting of a (ML)byN rectangular matrix B1 on top of a LbyN upper trapezoidal matrix B2: B = [ B1 ] < (ML)byN rectangular [ B2 ] < LbyN upper trapezoidal. The upper trapezoidal matrix B2 consists of the first L rows of a NbyN upper triangular matrix, where 0 <= L <= MIN(M,N). If L=0, B is rectangular MbyN; if M=L=N, B is upper triangular. The matrix W stores the elementary reflectors H(i) in the ith column below the diagonal (of A) in the (N+M)byN input matrix C C = [ A ] < upper triangular NbyN [ B ] < MbyN pentagonal so that W can be represented as W = [ I ] < identity, NbyN [ V ] < MbyN, same form as B. Thus, all of information needed for W is contained on exit in B, which we call V above. Note that V has the same form as B; that is, V = [ V1 ] < (ML)byN rectangular [ V2 ] < LbyN upper trapezoidal. The columns of V represent the vectors which define the H(i)'s. The number of blocks is B = ceiling(N/NB), where each block is of order NB except for the last block, which is of order IB = N  (B1)*NB. For each of the B blocks, a upper triangular block reflector factor is computed: T1, T2, ..., TB. The NBbyNB (and IBbyIB for the last block) T's are stored in the NBbyN matrix T as T = [T1 T2 ... TB].
Definition at line 187 of file dtpqrt.f.