NAME

sgeqlf - compute a QL factorization of a real M-by-N matrix A


SYNOPSIS

  SUBROUTINE SGEQLF( M, N, A, LDA, TAU, WORK, LDWORK, INFO)
  INTEGER M, N, LDA, LDWORK, INFO
  REAL A(LDA,*), TAU(*), WORK(*)
  SUBROUTINE SGEQLF_64( M, N, A, LDA, TAU, WORK, LDWORK, INFO)
  INTEGER*8 M, N, LDA, LDWORK, INFO
  REAL A(LDA,*), TAU(*), WORK(*)

F95 INTERFACE

  SUBROUTINE GEQLF( [M], [N], A, [LDA], TAU, [WORK], [LDWORK], [INFO])
  INTEGER :: M, N, LDA, LDWORK, INFO
  REAL, DIMENSION(:) :: TAU, WORK
  REAL, DIMENSION(:,:) :: A
  SUBROUTINE GEQLF_64( [M], [N], A, [LDA], TAU, [WORK], [LDWORK], 
 *       [INFO])
  INTEGER(8) :: M, N, LDA, LDWORK, INFO
  REAL, DIMENSION(:) :: TAU, WORK
  REAL, DIMENSION(:,:) :: A

C INTERFACE

#include <sunperf.h>

void sgeqlf(int m, int n, float *a, int lda, float *tau, int *info);

void sgeqlf_64(long m, long n, float *a, long lda, float *tau, long *info);


PURPOSE

sgeqlf computes a QL factorization of a real M-by-N matrix A: A = Q * L.


ARGUMENTS


FURTHER DETAILS

The matrix Q is represented as a product of elementary reflectors

   Q  = H(k) . . . H(2) H(1), where k  = min(m,n).

Each H(i) has the form

   H(i)  = I - tau * v * v'

where tau is a real scalar, and v is a real vector with

v(m-k+i+1:m) = 0 and v(m-k+i) = 1; v(1:m-k+i-1) is stored on exit in A(1:m-k+i-1,n-k+i), and tau in TAU(i).