STRSV, DTRSV, CTRSV, or ZTRSV Subroutine

Purpose

Solves system of equations.

Library

BLAS Library (libblas.a)

FORTRAN Syntax

SUBROUTINE STRSV(UPLO, TRANS, DIAG,
N, A, LDA, X, INCX)
INTEGER  INCX, LDA, N
CHARACTER*1  DIAG, TRANS, UPLO
REAL  A(LDA,*),  X(*)

SUBROUTINE DTRSV(UPLO, TRANS, DIAG,
N, A, LDA, X, INCX) 
INTEGER INCX,LDA,N
CHARACTER*1 DIAG,TRANS,UPLO
DOUBLE PRECISION A(LDA,*), X(*)
SUBROUTINE CTRSV(UPLO, TRANS, DIAG,
N, A, LDA, X, INCX)
INTEGER INCX,LDA,N
CHARACTER*1 DIAG,TRANS,UPLO
COMPLEX A(LDA,*), X(*)
SUBROUTINE ZTRSV(UPLO, TRANS, DIAG,
N, A, LDA, X, INCX)
INTEGER INCX,LDA,N
CHARACTER*1 DIAG,TRANS,UPLO
COMPLEX*16 A(LDA,*), X(*)

Description

The STRSV, DTRSV, CTRSV, or ZTRSV subroutine solves one of the systems of equations:

A * x = b

OR

A' * x = b

where b and x are N element vectors and A is an N by N unit, or non-unit, upper or lower triangular matrix.

No test for singularity or near-singularity is included in this routine. Such tests must be performed before calling this routine.

Parameters

Item Description
UPLO On entry, UPLO specifies whether the matrix is an upper or lower triangular matrix as follows:
UPLO = 'U' or 'u'
A is an upper triangular matrix.
UPLO = 'L' or 'l'
A is a lower triangular matrix.

Unchanged on exit.

TRANS On entry, TRANS specifies the equations to be solved as follows:
TRANS = 'N' or 'n'
A * x = b
TRANS = 'T' or 't'
A' * x = b
TRANS = 'C' or 'c'
A' * x = b

Unchanged on exit.

DIAG On entry, DIAG specifies whether or not A is unit triangular as follows:
DIAG = 'U' or 'u'
A is assumed to be unit triangular.
DIAG = 'N' or 'n'
A is not assumed to be unit triangular.

Unchanged on exit.

N On entry, N specifies the order of the matrix A; N must be at least 0; unchanged on exit.
A An array of dimension ( LDA, N ); on entry with UPLO = 'U' or 'u', the leading N by N upper triangular part of the array A must contain the upper triangular matrix and the strictly lower triangular part of A is not referenced. On entry with UPLO = 'L' or 'l', the leading N by N lower triangular part of the array A must contain the lower triangular matrix and the strictly upper triangular part of A is not referenced. When DIAG = 'U' or 'u', the diagonal elements of A are not referenced, but are assumed to be unity; unchanged on exit.
LDA On entry, LDA specifies the first dimension of A as declared in the calling (sub) program; LDA must be at least max( 1, N ); unchanged on exit.
X A vector of dimension at least (1 + (N-1) * abs(INCX) ); on entry, the incremented array X must contain the N element right-hand side vector b; on exit, X is overwritten with the solution vector x.
INCX On entry, INCX specifies the increment for the elements of X; INCX must not be 0; unchanged on exit.