Purpose
To choose a real eigenvalue or a pair of complex conjugate eigenvalues at "minimal" distance to a given real or complex value.Specification
SUBROUTINE SB01BX( REIG, N, XR, XI, WR, WI, S, P ) C .. Scalar Arguments .. LOGICAL REIG INTEGER N DOUBLE PRECISION P, S, XI ,XR C .. Array Arguments .. DOUBLE PRECISION WI(*), WR(*)Arguments
Mode Parameters
REIG LOGICAL Specifies the type of eigenvalues as follows: = .TRUE., a real eigenvalue is to be selected; = .FALSE., a pair of complex eigenvalues is to be selected.Input/Output Parameters
N (input) INTEGER The number of eigenvalues contained in the arrays WR and WI. N >= 1. XR,XI (input) DOUBLE PRECISION If REIG = .TRUE., XR must contain the real value and XI is assumed zero and therefore not referenced. If REIG = .FALSE., XR must contain the real part and XI the imaginary part, respectively, of the complex value. WR,WI (input/output) DOUBLE PRECISION array, dimension (N) On entry, if REIG = .TRUE., WR must contain the real eigenvalues from which an eigenvalue at minimal distance to XR is to be selected. In this case, WI is considered zero and therefore not referenced. On entry, if REIG = .FALSE., WR and WI must contain the real and imaginary parts, respectively, of the eigenvalues from which a pair of complex conjugate eigenvalues at minimal "distance" to XR + jXI is to be selected. The eigenvalues of each pair of complex conjugate eigenvalues must appear consecutively. On exit, the elements of these arrays are reordered such that the selected eigenvalue(s) is (are) found in the last element(s) of these arrays. S,P (output) DOUBLE PRECISION If REIG = .TRUE., S (and also P) contains the value of the selected real eigenvalue. If REIG = .FALSE., S and P contain the sum and product, respectively, of the selected complex conjugate pair of eigenvalues.Further Comments
For efficiency reasons, |x| + |y| is used for a complex number x + jy, instead of its modulus.Example
Program Text
NoneProgram Data
NoneProgram Results
None