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
Return to Supporting Routines index