NAG Library Routine Document

f06plf (dtpsv)

1
Purpose

f06plf (dtpsv) solves a real triangular system of equations, stored in packed form, with a single right-hand side.

2
Specification

Fortran Interface
Subroutine f06plf ( uplo, trans, diag, n, ap, x, incx)
Integer, Intent (In):: n, incx
Real (Kind=nag_wp), Intent (In):: ap(*)
Real (Kind=nag_wp), Intent (Inout):: x(*)
Character (1), Intent (In):: uplo, trans, diag
C Header Interface
#include <nagmk26.h>
void  f06plf_ (const char *uplo, const char *trans, const char *diag, const Integer *n, const double ap[], double x[], const Integer *incx, const Charlen length_uplo, const Charlen length_trans, const Charlen length_diag)
The routine may be called by its BLAS name dtpsv.

3
Description

f06plf (dtpsv) performs one of the matrix-vector operations
xA-1x   or   xA-Tx ,  
where A is an n by n real triangular matrix, stored in packed form, and x is an n-element real vector. A-T denotes A-T or equivalently A-T.
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

None.

5
Arguments

1:     uplo – Character(1)Input
On entry: specifies whether A is upper or lower triangular.
uplo='U'
A is upper triangular.
uplo='L'
A is lower triangular.
Constraint: uplo='U' or 'L'.
2:     trans – Character(1)Input
On entry: specifies the operation to be performed.
trans='N'
xA-1x.
trans='T' or 'C'
xA-Tx.
Constraint: trans='N', 'T' or 'C'.
3:     diag – Character(1)Input
On entry: specifies whether A has nonunit or unit diagonal elements.
diag='N'
The diagonal elements are stored explicitly.
diag='U'
The diagonal elements are assumed to be 1, and are not referenced.
Constraint: diag='N' or 'U'.
4:     n – IntegerInput
On entry: n, the order of the matrix A.
Constraint: n0.
5:     ap* – Real (Kind=nag_wp) arrayInput
Note: the dimension of the array ap must be at least n× n+1/2 .
On entry: the n by n triangular matrix A, packed by columns.
More precisely,
  • if uplo='U', the upper triangle of A must be stored with element Aij in api+jj-1/2 for ij;
  • if uplo='L', the lower triangle of A must be stored with element Aij in api+2n-jj-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* – Real (Kind=nag_wp) arrayInput/Output
Note: the dimension of the array x must be at least max1, 1+n-1 ×incx .
On entry: the n-element vector x.
If incx>0, xi must be stored in x1+i1×incx , for i=1,2,,n.
If incx<0, xi must be stored in x1ni×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 – IntegerInput
On entry: the increment in the subscripts of x between successive elements of x.
Constraint: incx0.

6
Error Indicators and Warnings

None.

7
Accuracy

Not applicable.

8
Parallelism and Performance

f06plf (dtpsv) is not threaded in any implementation.

9
Further Comments

None.

10
Example

None.