DGEQRT(3)      LAPACK routine of NEC Numeric Library Collection      DGEQRT(3)



NAME
       DGEQRT

SYNOPSIS
       SUBROUTINE DGEQRT (M, N, NB, A, LDA, T, LDT, WORK, INFO)



PURPOSE
            DGEQRT computes a blocked QR factorization of a real M-by-N matrix A
            using the compact WY representation of Q.




ARGUMENTS
           M         (input)
                     M is INTEGER
                     The number of rows of the matrix A.  M >= 0.

           N         (input)
                     N is INTEGER
                     The number of columns of the matrix A.  N >= 0.

           NB        (input)
                     NB is INTEGER
                     The block size to be used in the blocked QR.  MIN(M,N) >= NB >= 1.

           A         (input/output)
                     A is DOUBLE PRECISION array, dimension (LDA,N)
                     On entry, the M-by-N matrix A.
                     On exit, the elements on and above the diagonal of the array
                     contain the min(M,N)-by-N upper trapezoidal matrix R (R is
                     upper triangular if M >= N); the elements below the diagonal
                     are the columns of V.

           LDA       (input)
                     LDA is INTEGER
                     The leading dimension of the array A.  LDA >= max(1,M).

           T         (output)
                     T is DOUBLE PRECISION array, dimension (LDT,MIN(M,N))
                     The upper triangular block reflectors stored in compact form
                     as a sequence of upper triangular blocks.  See below
                     for further details.

           LDT       (input)
                     LDT is INTEGER
                     The leading dimension of the array T.  LDT >= NB.

           WORK      (output)
                     WORK is DOUBLE PRECISION array, dimension (NB*N)

           INFO      (output)
                     INFO is INTEGER
                     = 0:  successful exit
                     < 0:  if INFO = -i, the i-th argument had an illegal value






FURTHER DETAILS
             The matrix V stores the elementary reflectors H(i) in the i-th column
             below the diagonal. For example, if M=5 and N=3, the matrix V is

                          V = (  1       )
                              ( v1  1    )
                              ( v1 v2  1 )
                              ( v1 v2 v3 )
                              ( v1 v2 v3 )

             where the vi's represent the vectors which define H(i), which are returned
             in the matrix A.  The 1's along the diagonal of V are not stored in A.

             Let K=MIN(M,N).  The number of blocks is B = ceiling(K/NB), where each
             block is of order NB except for the last block, which is of order
             IB = K - (B-1)*NB.  For each of the B blocks, a upper triangular block
             reflector factor is computed: T1, T2, ..., TB.  The NB-by-NB (and IB-by-IB
             for the last block) T's are stored in the NB-by-N matrix T as

                          T = (T1 T2 ... TB).



LAPACK routine                  31 October 2017                      DGEQRT(3)