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