nag_dtpsv (f16plc) (PDF version)
f16 Chapter Contents
f16 Chapter Introduction
NAG Library Manual

NAG Library Function Document

nag_dtpsv (f16plc)


    1  Purpose
    7  Accuracy

1  Purpose

nag_dtpsv (f16plc) solves a system of equations given as a real triangular matrix stored in packed form.

2  Specification

#include <nag.h>
#include <nagf16.h>
void  nag_dtpsv (Nag_OrderType order, Nag_UploType uplo, Nag_TransType trans, Nag_DiagType diag, Integer n, double alpha, const double ap[], double x[], Integer incx, NagError *fail)

3  Description

nag_dtpsv (f16plc) performs one of the matrix-vector operations
xαA-1x   or   xαA-Tx ,  
where A is an n by n real triangular matrix, stored in packed form, x is an n-element real vector and α is a real scalar. A-T denotes A-T or equivalently A-T.
No test for singularity or near-singularity of A is included in this function. Such tests must be performed before calling this function.

4  References

Basic Linear Algebra Subprograms Technical (BLAST) Forum (2001) Basic Linear Algebra Subprograms Technical (BLAST) Forum Standard University of Tennessee, Knoxville, Tennessee

5  Arguments

1:     order Nag_OrderTypeInput
On entry: the order argument specifies the two-dimensional storage scheme being used, i.e., row-major ordering or column-major ordering. C language defined storage is specified by order=Nag_RowMajor. See Section in the Essential Introduction for a more detailed explanation of the use of this argument.
Constraint: order=Nag_RowMajor or Nag_ColMajor.
2:     uplo Nag_UploTypeInput
On entry: specifies whether A is upper or lower triangular.
A is upper triangular.
A is lower triangular.
Constraint: uplo=Nag_Upper or Nag_Lower.
3:     trans Nag_TransTypeInput
On entry: specifies the operation to be performed.
trans=Nag_Trans or Nag_ConjTrans
Constraint: trans=Nag_NoTrans, Nag_Trans or Nag_ConjTrans.
4:     diag Nag_DiagTypeInput
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=Nag_NonUnitDiag or Nag_UnitDiag.
5:     n IntegerInput
On entry: n, the order of the matrix A.
Constraint: n0.
6:     alpha doubleInput
On entry: the scalar α.
7:     ap[dim] const doubleInput
Note: the dimension, dim, of the array ap must be at least max1, n × n+1 / 2 .
On entry: the n by n triangular matrix A, packed by rows or columns.
The storage of elements Aij depends on the order and uplo arguments as follows:
  • if order=Nag_ColMajor and uplo=Nag_Upper,
              Aij is stored in ap[j-1×j/2+i-1], for ij;
  • if order=Nag_ColMajor and uplo=Nag_Lower,
              Aij is stored in ap[2n-j×j-1/2+i-1], for ij;
  • if order=Nag_RowMajor and uplo=Nag_Upper,
              Aij is stored in ap[2n-i×i-1/2+j-1], for ij;
  • if order=Nag_RowMajor and uplo=Nag_Lower,
              Aij is stored in ap[i-1×i/2+j-1], for ij.
If diag=Nag_UnitDiag, the diagonal elements of AP are assumed to be 1, and are not referenced; the same storage scheme is used whether diag=Nag_NonUnitDiag or diag=Nag_UnitDiag.
8:     x[dim] doubleInput/Output
Note: the dimension, dim, of the array x must be at least max1,1+n-1incx.
On entry: the right-hand side vector b.
On exit: the solution vector x.
9:     incx IntegerInput
On entry: the increment in the subscripts of x between successive elements of x.
Constraint: incx0.
10:   fail NagError *Input/Output
The NAG error argument (see Section 3.6 in the Essential Introduction).

6  Error Indicators and Warnings

Dynamic memory allocation failed.
See Section in the Essential Introduction for further information.
On entry, argument value had an illegal value.
On entry, incx=value.
Constraint: incx0.
On entry, n=value.
Constraint: n0.
An unexpected error has been triggered by this function. Please contact NAG.
See Section 3.6.6 in the Essential Introduction for further information.
Your licence key may have expired or may not have been installed correctly.
See Section 3.6.5 in the Essential Introduction for further information.

7  Accuracy

The BLAS standard requires accurate implementations which avoid unnecessary over/underflow (see Section 2.7 of Basic Linear Algebra Subprograms Technical (BLAST) Forum (2001)).

8  Parallelism and Performance

Not applicable.

9  Further Comments


10  Example

Solves real triangular system of linear equations, Ax=y, where A is a 4 by 4 real triangular matrix, stored in packed storage format, and is given by
A = 4.30 -3.96 -4.87 0.40 0.31 -8.02 -0.27 0.07 -5.95 0.12  
y = -12.90,16.75,-17.55,-11.04T .  
The vector y is stored in x and nag_dtpsv (f16plc).

10.1  Program Text

Program Text (f16plce.c)

10.2  Program Data

Program Data (f16plce.d)

10.3  Program Results

Program Results (f16plce.r)

nag_dtpsv (f16plc) (PDF version)
f16 Chapter Contents
f16 Chapter Introduction
NAG Library Manual

© The Numerical Algorithms Group Ltd, Oxford, UK. 2015