Purpose
To solve for the 2-by-2 symmetric matrix X in op(T)'*X + X*op(T) = SCALE*B, where T is 2-by-2, B is symmetric 2-by-2, and op(T) = T or T', where T' denotes the transpose of T.Specification
SUBROUTINE SB03MW( LTRAN, LUPPER, T, LDT, B, LDB, SCALE, X, LDX, $ XNORM, INFO ) C .. Scalar Arguments .. LOGICAL LTRAN, LUPPER INTEGER INFO, LDB, LDT, LDX DOUBLE PRECISION SCALE, XNORM C .. Array Arguments .. DOUBLE PRECISION B( LDB, * ), T( LDT, * ), X( LDX, * )Arguments
Mode Parameters
LTRAN LOGICAL Specifies the form of op(T) to be used, as follows: = .FALSE.: op(T) = T, = .TRUE. : op(T) = T'. LUPPER LOGICAL Specifies which triangle of the matrix B is used, and which triangle of the matrix X is computed, as follows: = .TRUE. : The upper triangular part; = .FALSE.: The lower triangular part.Input/Output Parameters
T (input) DOUBLE PRECISION array, dimension (LDT,2) The leading 2-by-2 part of this array must contain the matrix T. LDT INTEGER The leading dimension of array T. LDT >= 2. B (input) DOUBLE PRECISION array, dimension (LDB,2) On entry with LUPPER = .TRUE., the leading 2-by-2 upper triangular part of this array must contain the upper triangular part of the symmetric matrix B and the strictly lower triangular part of B is not referenced. On entry with LUPPER = .FALSE., the leading 2-by-2 lower triangular part of this array must contain the lower triangular part of the symmetric matrix B and the strictly upper triangular part of B is not referenced. LDB INTEGER The leading dimension of array B. LDB >= 2. SCALE (output) DOUBLE PRECISION The scale factor. SCALE is chosen less than or equal to 1 to prevent the solution overflowing. X (output) DOUBLE PRECISION array, dimension (LDX,2) On exit with LUPPER = .TRUE., the leading 2-by-2 upper triangular part of this array contains the upper triangular part of the symmetric solution matrix X and the strictly lower triangular part of X is not referenced. On exit with LUPPER = .FALSE., the leading 2-by-2 lower triangular part of this array contains the lower triangular part of the symmetric solution matrix X and the strictly upper triangular part of X is not referenced. Note that X may be identified with B in the calling statement. LDX INTEGER The leading dimension of array X. LDX >= 2. XNORM (output) DOUBLE PRECISION The infinity-norm of the solution.Error Indicator
INFO INTEGER = 0: successful exit; = 1: if T and -T have too close eigenvalues, so T is perturbed to get a nonsingular equation. NOTE: In the interests of speed, this routine does not check the inputs for errors.Method
The equivalent linear algebraic system of equations is formed and solved using Gaussian elimination with complete pivoting.References
[1] Anderson, E., Bai, Z., Bischof, C., Demmel, J., Dongarra, J., Du Croz, J., Greenbaum, A., Hammarling, S., McKenney, A., Ostrouchov, S., and Sorensen, D. LAPACK Users' Guide: Second Edition. SIAM, Philadelphia, 1995.Numerical Aspects
The algorithm is stable and reliable, since Gaussian elimination with complete pivoting is used.Further Comments
NoneExample
Program Text
NoneProgram Data
NoneProgram Results
None