[ Previous |
Next |
Contents |
Glossary |
Home |
Search ]

*AIX Version 4.3 Base Operating System and Extensions Technical Reference, Volume 2*

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

### Parameters

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

### Implementation Specifics

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

[ Previous |
Next |
Contents |
Glossary |
Home |
Search ]