## MB03NY

### Computing the smallest singular value of A - jwI

[Specification] [Arguments] [Method] [References] [Comments] [Example]

Purpose

```  To compute the smallest singular value of A - jwI.

```
Specification
```      DOUBLE PRECISION FUNCTION MB03NY( N, OMEGA, A, LDA, S, DWORK,
\$                                  LDWORK, CWORK, LCWORK, INFO )
C     .. Scalar Arguments ..
INTEGER                INFO, LCWORK, LDA, LDWORK, N
DOUBLE PRECISION       OMEGA
C     .. Array Arguments ..
DOUBLE PRECISION       A(LDA,*), DWORK(*), S(*)
COMPLEX*16             CWORK(*)

```
Function Value
```  MB03NY  DOUBLE PRECISION
The smallest singular value of A - jwI (if INFO = 0).
If N = 0, the function value is set to zero.

```
Arguments

Input/Output Parameters

```  N       (input) INTEGER
The order of the the matrix A.  N >= 0.

OMEGA   (input) DOUBLE PRECISION
The constant factor of A - jwI.

A       (input/workspace) DOUBLE PRECISION array, dimension
(LDA,N)
On entry, the leading N-by-N part of this array must
contain the matrix A.
On exit, if OMEGA = 0, the contents of this array are
destroyed. Otherwise, this array is unchanged.

LDA     INTEGER
The leading dimension of array A.  LDA >= MAX(1,N).

S       (output) DOUBLE PRECISION array, dimension (N)
The singular values of A - jwI in decreasing order.

```
Workspace
```  DWORK   DOUBLE PRECISION array, dimension (LDWORK)
On exit, if INFO = 0, DWORK(1) returns the optimal value
of LDWORK.

LDWORK  INTEGER
The length of the array DWORK.  LDWORK >= MAX( 1, 5*N ).
For optimum performance LDWORK should be larger.

CWORK   COMPLEX*16 array, dimension (LCWORK)
On exit, if INFO = 0 and OMEGA <> 0, CWORK(1) returns the
optimal value of LCWORK.
If OMEGA is zero, this array is not referenced.

LCWORK  INTEGER
The length of the array CWORK.
LCWORK >= 1,                 if OMEGA =  0;
LCWORK >= MAX( 1, N*N+3*N ), if OMEGA <> 0.
For optimum performance LCWORK should be larger.

```
Error Indicator
```  INFO    INTEGER
= 0:  successful exit;
< 0:  if INFO = -i, the i-th argument had an illegal
value;
= 2:  The SVD algorithm (in either LAPACK Library routine
DGESVD or ZGESVD) fails to converge; this error is
very rare.

```
Method
```  This procedure simply constructs the matrix A - jwI, and calls
ZGESVD if w is not zero, or DGESVD if w = 0.

```
```  This routine is not very efficient because it computes all
singular values, but it is very accurate. The routine is intended
to be called only from the SLICOT Library routine AB13FD.

```
Example

Program Text

```  None
```
Program Data
```  None
```
Program Results
```  None
```