Museum

Home

Lab Overview

Retrotechnology Articles

Online Manuals

⇒ cgelss(3P) — Sun WorkShop 3.0.1

Media Vault

Software Library

Restoration Projects

Artifacts Sought

cgelss(3P)

NAME

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

SYNOPSIS

SUBROUTINE CGELSS(
M, N, NRHS, A, LDA, B, LDB, S, RCOND, RANK, WORK, LWORK, RWORK, INFO )

void cgelss(long int m, long int n, long int nrhs, complex ∗ca,
long int lda, complex ∗cb, long int ldb, float ∗s, float rcond, long int ∗rank, long int ∗info)

INTEGER INFO, LDA, LDB, LWORK, M, N, NRHS, RANK

REAL RCOND

REAL RWORK( ∗ ), S( ∗ )

COMPLEX A( LDA, ∗ ), B( LDB, ∗ ), WORK( ∗ )

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

M       (input) INTEGER
The number of rows of the matrix A. M >= 0.

N       (input) INTEGER
The number of columns of the matrix A. N >= 0.

NRHS    (input) INTEGER
The number of right hand sides, i.e., the number of columns of the matrices B and X. NRHS >= 0.

A       (input/output) COMPLEX array, dimension (LDA,N)
On entry, the M-by-N matrix A. On exit, the first min(m,n) rows of A are overwritten with its right singular vectors, stored rowwise.

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

B       (input/output) COMPLEX array, dimension (LDB,NRHS)
On entry, the M-by-NRHS right hand side matrix B. On exit, B is overwritten by the N-by-NRHS solution matrix X. If m >= n and RANK = n, the residual sum-of-squares for the solution in the i-th column is given by the sum of squares of elements n+1:m in that column.

LDB     (input) INTEGER
The leading dimension of the array B.  LDB >= max(1,M,N).

S       (output) REAL array, dimension (min(M,N))
The singular values of A in decreasing order. The condition number of A in the 2-norm = S(1)/S(min(m,n)).

RCOND   (input) REAL
RCOND is used to determine the effective rank of A. Singular values S(i) <= RCOND∗S(1) are treated as zero. If RCOND < 0, machine precision is used instead.

RANK    (output) INTEGER
The effective rank of A, i.e., the number of singular values which are greater than RCOND∗S(1).

WORK    (workspace/output) COMPLEX array, dimension (LWORK)
On exit, if INFO = 0, WORK(1) returns the optimal LWORK.

LWORK   (input) INTEGER
The dimension of the array WORK. LWORK >= 1, and also: LWORK >=  2∗min(M,N) + max(M,N,NRHS) For good performance, LWORK should generally be larger.

RWORK   (workspace) REAL array, dimension (5∗min(M,N)-1)

INFO    (output) INTEGER
= 0:  successful exit
< 0:  if INFO = -i, the i-th argument had an illegal value.
> 0:  the algorithm for computing the SVD failed to converge; if INFO = i, i off-diagonal elements of an intermediate bidiagonal form did not converge to zero.

Sun, Inc.  —  Last change: 20 Sep 1996

Typewritten Software • bear@typewritten.org • Edmonds, WA 98026