LINRT

Computes the inverse of a real triangular matrix.

Required Arguments

AN 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.

AINVN 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.

Optional Arguments

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).

FORTRAN 90 Interface

Generic: CALL LINRT (A, AINV [])

Specific: The specific interface names are S_LINRT and D_LINRT.

FORTRAN 77 Interface

Single: CALL LINRT (N, A, LDA, IPATH, AINV, LDAINV)

Double: The double precision name is DLINRT.

Description

Routine LINRT computes the inverse of a real triangular matrix. It fails if A has a zero diagonal element.

Example

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

Output

 

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