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
Visual Numerics, Inc. PHONE: 713.784.3131 FAX:713.781.9260 |