NAME

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


SYNOPSIS

  SUBROUTINE ZGELSS( M, N, NRHS, A, LDA, B, LDB, SING, RCOND, IRANK, 
 *      WORK, LDWORK, WORK2, INFO)
  DOUBLE COMPLEX A(LDA,*), B(LDB,*), WORK(*)
  INTEGER M, N, NRHS, LDA, LDB, IRANK, LDWORK, INFO
  DOUBLE PRECISION RCOND
  DOUBLE PRECISION SING(*), WORK2(*)
  SUBROUTINE ZGELSS_64( M, N, NRHS, A, LDA, B, LDB, SING, RCOND, 
 *      IRANK, WORK, LDWORK, WORK2, INFO)
  DOUBLE COMPLEX A(LDA,*), B(LDB,*), WORK(*)
  INTEGER*8 M, N, NRHS, LDA, LDB, IRANK, LDWORK, INFO
  DOUBLE PRECISION RCOND
  DOUBLE PRECISION SING(*), WORK2(*)

F95 INTERFACE

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

C INTERFACE

#include <sunperf.h>

void zgelss(int m, int n, int nrhs, doublecomplex *a, int lda, doublecomplex *b, int ldb, double *sing, double rcond, int *irank, int *info);

void zgelss_64(long m, long n, long nrhs, doublecomplex *a, long lda, doublecomplex *b, long ldb, double *sing, double rcond, long *irank, long *info);


PURPOSE

zgelss 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