NAME

cgelss - compute the minimum norm solution to a complex linear least squares problem


SYNOPSIS

  SUBROUTINE CGELSS( M, N, NRHS, A, LDA, B, LDB, SING, RCOND, IRANK, 
 *      WORK, LDWORK, WORK2, INFO)
  COMPLEX A(LDA,*), B(LDB,*), WORK(*)
  INTEGER M, N, NRHS, LDA, LDB, IRANK, LDWORK, INFO
  REAL RCOND
  REAL SING(*), WORK2(*)
  SUBROUTINE CGELSS_64( M, N, NRHS, A, LDA, B, LDB, SING, RCOND, 
 *      IRANK, WORK, LDWORK, WORK2, INFO)
  COMPLEX A(LDA,*), B(LDB,*), WORK(*)
  INTEGER*8 M, N, NRHS, LDA, LDB, IRANK, LDWORK, INFO
  REAL RCOND
  REAL SING(*), WORK2(*)

F95 INTERFACE

  SUBROUTINE GELSS( [M], [N], [NRHS], A, [LDA], B, [LDB], SING, RCOND, 
 *       IRANK, [WORK], [LDWORK], [WORK2], [INFO])
  COMPLEX, DIMENSION(:) :: WORK
  COMPLEX, DIMENSION(:,:) :: A, B
  INTEGER :: M, N, NRHS, LDA, LDB, IRANK, LDWORK, INFO
  REAL :: RCOND
  REAL, DIMENSION(:) :: SING, WORK2
  SUBROUTINE GELSS_64( [M], [N], [NRHS], A, [LDA], B, [LDB], SING, 
 *       RCOND, IRANK, [WORK], [LDWORK], [WORK2], [INFO])
  COMPLEX, DIMENSION(:) :: WORK
  COMPLEX, DIMENSION(:,:) :: A, B
  INTEGER(8) :: M, N, NRHS, LDA, LDB, IRANK, LDWORK, INFO
  REAL :: RCOND
  REAL, DIMENSION(:) :: SING, WORK2

C INTERFACE

#include <sunperf.h>

void cgelss(int m, int n, int nrhs, complex *a, int lda, complex *b, int ldb, float *sing, float rcond, int *irank, int *info);

void cgelss_64(long m, long n, long nrhs, complex *a, long lda, complex *b, long ldb, float *sing, float rcond, long *irank, long *info);


PURPOSE

cgelss computes the minimum norm solution to a complex linear least squares problem:

Minimize 2-norm(| b - A*x |).

using the singular value decomposition (SVD) of A. A is an M-by-N matrix which may be rank-deficient.

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.

The effective rank of A is determined by treating as zero those singular values which are less than RCOND times the largest singular value.


ARGUMENTS