NAG FL Interface
f06slf (ztpsv)

Settings help

FL Name Style:

FL Specification Language:

1 Purpose

f06slf solves a complex triangular system of equations, stored in packed form, with a single right-hand side.

2 Specification

Fortran Interface
Subroutine f06slf ( uplo, trans, diag, n, ap, x, incx)
Integer, Intent (In) :: n, incx
Complex (Kind=nag_wp), Intent (In) :: ap(*)
Complex (Kind=nag_wp), Intent (Inout) :: x(*)
Character (1), Intent (In) :: uplo, trans, diag
C Header Interface
#include <nag.h>
void  f06slf_ (const char *uplo, const char *trans, const char *diag, const Integer *n, const Complex ap[], Complex x[], const Integer *incx, const Charlen length_uplo, const Charlen length_trans, const Charlen length_diag)
The routine may be called by the names f06slf, nagf_blas_ztpsv or its BLAS name ztpsv.

3 Description

f06slf performs one of the matrix-vector operations
xA-1x ,   xA-Tx   or   xA-Hx ,  
where A is an n×n complex triangular matrix, stored in packed form, and x is an n-element complex vector. A-T denotes (AT)-1 or equivalently (A-1)T ; A-H denotes (AH)-1 or equivalently (A-1)H .
No test for singularity or near-singularity of A is included in this routine. Such tests must be performed before calling this routine.

4 References


5 Arguments

1: uplo Character(1) Input
On entry: specifies whether A is upper or lower triangular.
A is upper triangular.
A is lower triangular.
Constraint: uplo='U' or 'L'.
2: trans Character(1) Input
On entry: specifies the operation to be performed.
Constraint: trans='N', 'T' or 'C'.
3: diag Character(1) Input
On entry: specifies whether A has nonunit or unit diagonal elements.
The diagonal elements are stored explicitly.
The diagonal elements are assumed to be 1, and are not referenced.
Constraint: diag='N' or 'U'.
4: n Integer Input
On entry: n, the order of the matrix A.
Constraint: n0.
5: ap(*) Complex (Kind=nag_wp) array Input
Note: the dimension of the array ap must be at least n× (n+1)/2 .
On entry: the n×n triangular matrix A, packed by columns.
More precisely,
  • if uplo='U', the upper triangle of A must be stored with element Aij in ap(i+j(j-1)/2) for ij;
  • if uplo='L', the lower triangle of A must be stored with element Aij in ap(i+(2n-j)(j-1)/2) for ij.
If diag='U', the diagonal elements of A are assumed to be 1, and are not referenced; the same storage scheme is used whether diag='N' or ‘U’.
6: x(*) Complex (Kind=nag_wp) array Input/Output
Note: the dimension of the array x must be at least max(1, 1+(n-1) ×|incx| ) .
On entry: the vector x.
If incx>0, xi must be stored in x(1+(i1)×incx) , for i=1,2,,n.
If incx<0, xi must be stored in x(1(ni)×incx) , for i=1,2,,n.
On exit: the updated vector x stored in the array elements used to supply the original vector x.
7: incx Integer Input
On entry: the increment in the subscripts of x between successive elements of x.
Constraint: incx0.

6 Error Indicators and Warnings


7 Accuracy

Not applicable.

8 Parallelism and Performance

Background information to multithreading can be found in the Multithreading documentation.
f06slf is not threaded in any implementation.

9 Further Comments


10 Example