Homepage > Man Pages > Category > Subroutines
Homepage > Man Pages > Name > L

# LAPACK-3

## man page of LAPACK-3

### LAPACK-3: uses the singular value decomposition of A to solve the least squares problem of finding X to minimize the Euclidean

```NAME
LAPACK-3  -  uses  the  singular  value decomposition of A to solve the
least squares problem of finding X to minimize the  Euclidean  norm  of
each  column  of A*X-B, where A is N-by-N upper bidiagonal, and X and B
are N-by-NRHS

SYNOPSIS
SUBROUTINE ZLALSD( UPLO, SMLSIZ, N, NRHS, D, E, B,  LDB,  RCOND,  RANK,
WORK, RWORK, IWORK, INFO )

CHARACTER      UPLO

INTEGER        INFO, LDB, N, NRHS, RANK, SMLSIZ

DOUBLE         PRECISION RCOND

INTEGER        IWORK( * )

DOUBLE         PRECISION D( * ), E( * ), RWORK( * )

COMPLEX*16     B( LDB, * ), WORK( * )

PURPOSE
ZLALSD  uses  the  singular value decomposition of A to solve the least
squares problem of finding X to minimize the  Euclidean  norm  of  each
column of A*X-B, where A is N-by-N upper bidiagonal, and X and B are N-
by-NRHS. The solution X overwrites B.
The singular values of A smaller than RCOND times the largest
singular value are treated as zero in solving the least squares
problem; in this case a minimum norm solution is returned.
The actual singular values are returned in D in ascending order.
This code makes very mild assumptions about floating point
arithmetic. It will work on machines with a guard digit in
add/subtract, or on those binary machines without guard digits
which subtract like the Cray XMP, Cray YMP, Cray C 90, or Cray 2.
It could conceivably fail on hexadecimal or decimal machines
without guard digits, but we know of none.

ARGUMENTS
UPLO   (input) CHARACTER*1
= 'U': D and E define an upper bidiagonal matrix.
= 'L': D and E define a  lower bidiagonal matrix.
SMLSIZ (input) INTEGER
The maximum size of the subproblems at the bottom of the
computation tree.

N      (input) INTEGER
The dimension of the  bidiagonal matrix.  N >= 0.

NRHS   (input) INTEGER
The number of columns of B. NRHS must be at least 1.

D      (input/output) DOUBLE PRECISION array, dimension (N)
On entry D contains the main diagonal of the bidiagonal
matrix. On exit, if INFO = 0, D contains its singular values.

E      (input/output) DOUBLE PRECISION array, dimension (N-1)
Contains the super-diagonal entries of the bidiagonal matrix.
On exit, E has been destroyed.

B      (input/output) COMPLEX*16 array, dimension (LDB,NRHS)
On input, B contains the right hand sides of the least
squares problem. On output, B contains the solution X.

LDB    (input) INTEGER
The leading dimension of B in the calling subprogram.
LDB must be at least max(1,N).

RCOND  (input) DOUBLE PRECISION
The singular values of A less than or equal to RCOND times
the largest singular value are treated as zero in solving
the least squares problem. If RCOND is negative,
For example, if diag(S)*X=B were the least squares problem,
where diag(S) is a diagonal matrix of singular values, the
solution would be X(i) = B(i) / S(i) if S(i) is greater than
RCOND*max(S), and X(i) = 0 if S(i) is less than or equal to
RCOND*max(S).

RANK   (output) INTEGER
The number of singular values of A greater than RCOND times
the largest singular value.

WORK   (workspace) COMPLEX*16 array, dimension at least
(N * NRHS).

RWORK  (workspace) DOUBLE PRECISION array, dimension at least
(9*N + 2*N*SMLSIZ + 8*N*NLVL + 3*SMLSIZ*NRHS +
MAX( (SMLSIZ+1)**2, N*(1+NRHS) + 2*NRHS ),
where
NLVL = MAX( 0, INT( LOG_2( MIN( M,N )/(SMLSIZ+1) ) ) + 1 )

IWORK  (workspace) INTEGER array, dimension at least
(3*N*NLVL + 11*N).

INFO   (output) INTEGER
= 0:  successful exit.
< 0:  if INFO = -i, the i-th argument had an illegal value.
> 0:  The algorithm failed to compute a singular value while
working on the submatrix lying in rows and columns
INFO/(N+1) through MOD(INFO,N+1).

FURTHER DETAILS
Based on contributions by
Ming Gu and Ren-Cang Li, Computer Science Division, University of
California at Berkeley, USA
Osni Marques, LBNL/NERSC, USA

LAPACK routine (version 3.2.2)   March 2011                       LAPACK-3(3)
```