NAME

sgels - solve overdetermined or underdetermined real linear systems involving an M-by-N matrix A, or its transpose, using a QR or LQ factorization of A


SYNOPSIS

  SUBROUTINE SGELS( TRANSA, M, N, NRHS, A, LDA, B, LDB, WORK, LDWORK, 
 *      INFO)
  CHARACTER * 1 TRANSA
  INTEGER M, N, NRHS, LDA, LDB, LDWORK, INFO
  REAL A(LDA,*), B(LDB,*), WORK(*)
  SUBROUTINE SGELS_64( TRANSA, M, N, NRHS, A, LDA, B, LDB, WORK, 
 *      LDWORK, INFO)
  CHARACTER * 1 TRANSA
  INTEGER*8 M, N, NRHS, LDA, LDB, LDWORK, INFO
  REAL A(LDA,*), B(LDB,*), WORK(*)

F95 INTERFACE

  SUBROUTINE GELS( [TRANSA], [M], [N], [NRHS], A, [LDA], B, [LDB], 
 *       [WORK], [LDWORK], [INFO])
  CHARACTER(LEN=1) :: TRANSA
  INTEGER :: M, N, NRHS, LDA, LDB, LDWORK, INFO
  REAL, DIMENSION(:) :: WORK
  REAL, DIMENSION(:,:) :: A, B
  SUBROUTINE GELS_64( [TRANSA], [M], [N], [NRHS], A, [LDA], B, [LDB], 
 *       [WORK], [LDWORK], [INFO])
  CHARACTER(LEN=1) :: TRANSA
  INTEGER(8) :: M, N, NRHS, LDA, LDB, LDWORK, INFO
  REAL, DIMENSION(:) :: WORK
  REAL, DIMENSION(:,:) :: A, B

C INTERFACE

#include <sunperf.h>

void sgels(char transa, int m, int n, int nrhs, float *a, int lda, float *b, int ldb, int *info);

void sgels_64(char transa, long m, long n, long nrhs, float *a, long lda, float *b, long ldb, long *info);


PURPOSE

sgels solves overdetermined or underdetermined real linear systems involving an M-by-N matrix A, or its transpose, using a QR or LQ factorization of A. It is assumed that A has full rank.

The following options are provided:

1. If TRANS = 'N' and m >= n: find the least squares solution of an overdetermined system, i.e., solve the least squares problem minimize || B - A*X ||.

2. If TRANS = 'N' and m < n: find the minimum norm solution of an underdetermined system A * X = B.

3. If TRANS = 'T' and m >= n: find the minimum norm solution of an undetermined system A**T * X = B.

4. If TRANS = 'T' and m < n: find the least squares solution of an overdetermined system, i.e., solve the least squares problem minimize || B - A**T * X ||.

Several right hand side vectors b and solution vectors x can be handled in a single call; they are stored as the columns of the M-by-NRHS right hand side matrix B and the N-by-NRHS solution matrix X.


ARGUMENTS