Loading...
Searching...
No Matches

## sgelqt()

subroutine sgelqt | ( | integer | m,
|  | integer | n,
|  | integer | mb,
|  | real, dimension( lda, * ) | a,
|  | integer | lda,
|  | real, dimension( ldt, * ) | t,
|  | integer | ldt,
|  | real, dimension( * ) | work,
|  | integer | info )

SGELQT

Purpose:

      !>
      !> SGELQT computes a blocked LQ factorization of a real M-by-N matrix A
      !> using the compact WY representation of Q.
      !>

Parameters

  [in]

  M

      !>          M is INTEGER
      !>          The number of rows of the matrix A.  M >= 0.
      !>

  [in]

  N

      !>          N is INTEGER
      !>          The number of columns of the matrix A.  N >= 0.
      !>

  [in]

  MB

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

  [in,out]

  A

      !>          A is REAL array, dimension (LDA,N)
      !>          On entry, the M-by-N matrix A.
      !>          On exit, the elements on and below the diagonal of the array
      !>          contain the M-by-MIN(M,N) lower trapezoidal matrix L (L is
      !>          lower triangular if M <= N); the elements above the diagonal
      !>          are the rows of V.
      !>

  [in]

  LDA

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

  [out]

  T

      !>          T is REAL 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.
      !>

  [in]

  LDT

      !>          LDT is INTEGER
      !>          The leading dimension of the array T.  LDT >= MB.
      !>

  [out]

  WORK

      !>          WORK is REAL array, dimension (MB*N)
      !>

  [out]

  INFO

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

Author
  Univ. of Tennessee
  Univ. of California Berkeley
  Univ. of Colorado Denver
  NAG Ltd.

Further Details:

      !>
      !>  The matrix V stores the elementary reflectors H(i) in the i-th row
      !>  above the diagonal. For example, if M=5 and N=3, the matrix V is
      !>
      !>               V = (  1  v1 v1 v1 v1 )
      !>                   (     1  v2 v2 v2 )
      !>                   (         1 v3 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/MB), where each
      !>  block is of order MB except for the last block, which is of order
      !>  IB = K - (B-1)*MB.  For each of the B blocks, a upper triangular block
      !>  reflector factor is computed: T1, T2, ..., TB.  The MB-by-MB (and IB-by-IB
      !>  for the last block) T's are stored in the MB-by-K matrix T as
      !>
      !>               T = (T1 T2 ... TB).
      !>