Computes the inverse of a real triangular matrix.
A N by N matrix containing
the triangular matrix to be inverted. (Input)
For a lower
triangular matrix, only the lower triangular part and diagonal of A are referenced. For
an upper triangular matrix, only the upper triangular part and diagonal of A are referenced.
AINV N by N matrix containing
the inverse of A.
(Output)
If A is lower triangular,
AINV is also
lower triangular. If A is upper triangular,
AINV is also
upper triangular. If A is not needed, A and AINV can share the
same storage locations.
N Number of
equations. (Input)
Default: N = size (A,2).
LDA Leading
dimension of A
exactly as specified in the dimension statement of the calling
program. (Input)
Default: LDA = size (A,1).
IPATH Path
indicator. (Input)
IPATH = 1 means A is lower triangular.
IPATH = 2
means A is upper
triangular.
Default: IPATH = 1.
LDAINV Leading
dimension of AINV exactly as
specified in the dimension statement of the calling program.
(Input)
Default: LDAINV = size (AINV,1).
Generic: CALL LINRT (A, AINV [, ])
Specific: The specific interface names are S_LINRT and D_LINRT.
Single: CALL LINRT (N, A, LDA, IPATH, AINV, LDAINV)
Double: The double precision name is DLINRT.
Routine LINRT computes the inverse of a real triangular matrix. It fails if A has a zero diagonal element.
The inverse is computed for a 3 Χ 3 lower triangular matrix.
USE
LINRT_INT
USE WRRRN_INT
! Declare variables
PARAMETER (LDA=3)
REAL A(LDA,LDA), AINV(LDA,LDA)
! Set values for A
! A = ( 2.0 )
! ( 2.0 -1.0 )
! ( -4.0 2.0 5.0)
!
DATA A/2.0, 2.0, -4.0, 0.0, -1.0, 2.0, 0.0, 0.0, 5.0/
!
! Compute the inverse of A
CALL LINRT (A, AINV)
! Print results
CALL WRRRN (AINV, AINV)
END
AINV
1 2
3
1 0.500 0.000 0.000
2
1.000 -1.000 0.000
3 0.000
0.400 0.200
PHONE: 713.784.3131 FAX:713.781.9260 |