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.Further Comments
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
NoneProgram Data
NoneProgram Results
None