F07TVF (ZTRRFS) (PDF version)
F07 Chapter Contents
F07 Chapter Introduction
NAG Library Manual

NAG Library Routine Document

F07TVF (ZTRRFS)

Note:  before using this routine, please read the Users' Note for your implementation to check the interpretation of bold italicised terms and other implementation-dependent details.

+ Contents

    1  Purpose
    7  Accuracy

1  Purpose

F07TVF (ZTRRFS) returns error bounds for the solution of a complex triangular system of linear equations with multiple right-hand sides, AX=B, ATX=B or AHX=B.

2  Specification

SUBROUTINE F07TVF ( UPLO, TRANS, DIAG, N, NRHS, A, LDA, B, LDB, X, LDX, FERR, BERR, WORK, RWORK, INFO)
INTEGER  N, NRHS, LDA, LDB, LDX, INFO
REAL (KIND=nag_wp)  FERR(NRHS), BERR(NRHS), RWORK(N)
COMPLEX (KIND=nag_wp)  A(LDA,*), B(LDB,*), X(LDX,*), WORK(2*N)
CHARACTER(1)  UPLO, TRANS, DIAG
The routine may be called by its LAPACK name ztrrfs.

3  Description

F07TVF (ZTRRFS) returns the backward errors and estimated bounds on the forward errors for the solution of a complex triangular system of linear equations with multiple right-hand sides AX=B, ATX=B or AHX=B. The routine handles each right-hand side vector (stored as a column of the matrix B) independently, so we describe the function of F07TVF (ZTRRFS) in terms of a single right-hand side b and solution x.
Given a computed solution x, the routine computes the component-wise backward error β. This is the size of the smallest relative perturbation in each element of A and b such that x is the exact solution of a perturbed system
A+δAx=b+δb δaijβaij   and   δbiβbi .
Then the routine estimates a bound for the component-wise forward error in the computed solution, defined by:
maxixi-x^i/maxixi
where x^ is the true solution.
For details of the method, see the F07 Chapter Introduction.

4  References

Golub G H and Van Loan C F (1996) Matrix Computations (3rd Edition) Johns Hopkins University Press, Baltimore

5  Parameters

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: indicates the form of the equations.
TRANS='N'
The equations are of the form AX=B.
TRANS='T'
The equations are of the form ATX=B.
TRANS='C'
The equations are of the form AHX=B.
Constraint: TRANS='N', 'T' or 'C'.
3:     DIAG – CHARACTER(1)Input
On entry: indicates whether A is a nonunit or unit triangular matrix.
DIAG='N'
A is a nonunit triangular matrix.
DIAG='U'
A is a unit triangular matrix; the diagonal elements are not referenced and are assumed to be 1.
Constraint: DIAG='N' or 'U'.
4:     N – INTEGERInput
On entry: n, the order of the matrix A.
Constraint: N0.
5:     NRHS – INTEGERInput
On entry: r, the number of right-hand sides.
Constraint: NRHS0.
6:     A(LDA,*) – COMPLEX (KIND=nag_wp) arrayInput
Note: the second dimension of the array A must be at least max1,N.
On entry: the n by n triangular matrix A.
  • If UPLO='U', A is upper triangular and the elements of the array below the diagonal are not referenced.
  • If UPLO='L', A is lower triangular and the elements of the array above the diagonal are not referenced.
  • If DIAG='U', the diagonal elements of A are assumed to be 1, and are not referenced.
7:     LDA – INTEGERInput
On entry: the first dimension of the array A as declared in the (sub)program from which F07TVF (ZTRRFS) is called.
Constraint: LDAmax1,N.
8:     B(LDB,*) – COMPLEX (KIND=nag_wp) arrayInput
Note: the second dimension of the array B must be at least max1,NRHS.
On entry: the n by r right-hand side matrix B.
9:     LDB – INTEGERInput
On entry: the first dimension of the array B as declared in the (sub)program from which F07TVF (ZTRRFS) is called.
Constraint: LDBmax1,N.
10:   X(LDX,*) – COMPLEX (KIND=nag_wp) arrayInput
Note: the second dimension of the array X must be at least max1,NRHS.
On entry: the n by r solution matrix X, as returned by F07TSF (ZTRTRS).
11:   LDX – INTEGERInput
On entry: the first dimension of the array X as declared in the (sub)program from which F07TVF (ZTRRFS) is called.
Constraint: LDXmax1,N.
12:   FERR(NRHS) – REAL (KIND=nag_wp) arrayOutput
On exit: FERRj contains an estimated error bound for the jth solution vector, that is, the jth column of X, for j=1,2,,r.
13:   BERR(NRHS) – REAL (KIND=nag_wp) arrayOutput
On exit: BERRj contains the component-wise backward error bound β for the jth solution vector, that is, the jth column of X, for j=1,2,,r.
14:   WORK(2×N) – COMPLEX (KIND=nag_wp) arrayWorkspace
15:   RWORK(N) – REAL (KIND=nag_wp) arrayWorkspace
16:   INFO – INTEGEROutput
On exit: INFO=0 unless the routine detects an error (see Section 6).

6  Error Indicators and Warnings

Errors or warnings detected by the routine:
INFO<0
If INFO=-i, the ith parameter had an illegal value. An explanatory message is output, and execution of the program is terminated.

7  Accuracy

The bounds returned in FERR are not rigorous, because they are estimated, not computed exactly; but in practice they almost always overestimate the actual error.

8  Further Comments

A call to F07TVF (ZTRRFS), for each right-hand side, involves solving a number of systems of linear equations of the form Ax=b or AHx=b; the number is usually 5 and never more than 11. Each solution involves approximately 4n2 real floating point operations.
The real analogue of this routine is F07THF (DTRRFS).

9  Example

This example solves the system of equations AX=B and to compute forward and backward error bounds, where
A= 4.78+4.56i 0.00+0.00i 0.00+0.00i 0.00+0.00i 2.00-0.30i -4.11+1.25i 0.00+0.00i 0.00+0.00i 2.89-1.34i 2.36-4.25i 4.15+0.80i 0.00+0.00i -1.89+1.15i 0.04-3.69i -0.02+0.46i 0.33-0.26i
and
B= -14.78-32.36i -18.02+28.46i 2.98-02.14i 14.22+15.42i -20.96+17.06i 5.62+35.89i 9.54+09.91i -16.46-01.73i .

9.1  Program Text

Program Text (f07tvfe.f90)

9.2  Program Data

Program Data (f07tvfe.d)

9.3  Program Results

Program Results (f07tvfe.r)


F07TVF (ZTRRFS) (PDF version)
F07 Chapter Contents
F07 Chapter Introduction
NAG Library Manual

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