# NAG Library Routine Document

## 1Purpose

f08flf (ddisna) computes the reciprocal condition numbers for the eigenvectors of a real symmetric or complex Hermitian $m$ by $m$ matrix $A$, or for the left or right singular vectors of a general $m$ by $n$ matrix $A$.

## 2Specification

Fortran Interface
 Subroutine f08flf ( job, m, n, d, sep, info)
 Integer, Intent (In) :: m, n Integer, Intent (Out) :: info Real (Kind=nag_wp), Intent (In) :: d(*) Real (Kind=nag_wp), Intent (Inout) :: sep(*) Character (1), Intent (In) :: job
C Header Interface
#include <nagmk26.h>
 void f08flf_ (const char *job, const Integer *m, const Integer *n, const double d[], double sep[], Integer *info, const Charlen length_job)
The routine may be called by its LAPACK name ddisna.

## 3Description

The bound on the error, measured by the angle in radians, for the $i$th computed vector is given by $\epsilon {‖A‖}_{2}/{\mathrm{sep}}_{i}$, where $\epsilon$ is the machine precision and ${\mathrm{sep}}_{i}$ is the reciprocal condition number for the vectors, returned in the array element ${\mathbf{sep}}\left(i\right)$. ${\mathbf{sep}}\left(i\right)$ is restricted to be at least $\epsilon {‖A‖}_{2}$ in order to limit the size of the error bound.
Golub G H and Van Loan C F (1996) Matrix Computations (3rd Edition) Johns Hopkins University Press, Baltimore

## 5Arguments

1:     $\mathbf{job}$ – Character(1)Input
On entry: specifies for which problem the reciprocal condition number should be computed.
${\mathbf{job}}=\text{'E'}$
The eigenvectors of a symmetric or Hermitian matrix.
${\mathbf{job}}=\text{'L'}$
The left singular vectors of a general matrix.
${\mathbf{job}}=\text{'R'}$
The right singular vectors of a general matrix.
Constraint: ${\mathbf{job}}=\text{'E'}$, $\text{'L'}$ or $\text{'R'}$.
2:     $\mathbf{m}$ – IntegerInput
On entry: $m$, the number of rows of the matrix $A$.
Constraint: ${\mathbf{m}}\ge 0$.
3:     $\mathbf{n}$ – IntegerInput
On entry: $n$, the number of columns of the matrix when ${\mathbf{job}}=\text{'L'}$ or $\text{'R'}$.
If ${\mathbf{job}}=\text{'E'}$, n is not referenced.
Constraint: if ${\mathbf{job}}=\text{'L'}$ or $\text{'R'}$, ${\mathbf{n}}\ge 0$.
4:     $\mathbf{d}\left(*\right)$ – Real (Kind=nag_wp) arrayInput
Note: the dimension of the array d must be at least $\mathrm{max}\phantom{\rule{0.125em}{0ex}}\left(1,{\mathbf{m}}\right)$ if ${\mathbf{job}}=\text{'E'}$ and at least $\mathrm{max}\phantom{\rule{0.125em}{0ex}}\left(1,\mathrm{min}\phantom{\rule{0.125em}{0ex}}\left({\mathbf{m}},{\mathbf{n}}\right)\right)$ if ${\mathbf{job}}=\text{'L'}$ or $\text{'R'}$.
On entry: the eigenvalues if ${\mathbf{job}}=\text{'E'}$, or singular values if ${\mathbf{job}}=\text{'L'}$ or $\text{'R'}$ of the matrix $A$.
Constraints:
• the elements of the array d must be in either increasing or decreasing order;
• if ${\mathbf{job}}=\text{'L'}$ or $\text{'R'}$ the elements of d must be non-negative.
5:     $\mathbf{sep}\left(*\right)$ – Real (Kind=nag_wp) arrayOutput
Note: the dimension of the array sep must be at least $\mathrm{max}\phantom{\rule{0.125em}{0ex}}\left(1,{\mathbf{m}}\right)$ if ${\mathbf{job}}=\text{'E'}$ and at least $\mathrm{max}\phantom{\rule{0.125em}{0ex}}\left(1,\mathrm{min}\phantom{\rule{0.125em}{0ex}}\left({\mathbf{m}},{\mathbf{n}}\right)\right)$ if ${\mathbf{job}}=\text{'L'}$ or $\text{'R'}$.
On exit: the reciprocal condition numbers of the vectors.
6:     $\mathbf{info}$ – IntegerOutput
On exit: ${\mathbf{info}}=0$ unless the routine detects an error (see Section 6).

## 6Error Indicators and Warnings

${\mathbf{info}}<0$
If ${\mathbf{info}}=-i$, argument $i$ had an illegal value. An explanatory message is output, and execution of the program is terminated.

## 7Accuracy

The reciprocal condition numbers are computed to machine precision relative to the size of the eigenvalues, or singular values.

## 8Parallelism and Performance

f08flf (ddisna) is not threaded in any implementation.

## 9Further Comments

f08flf (ddisna) may also be used towards computing error bounds for the eigenvectors of the generalized symmetric or Hermitian definite eigenproblem. See Golub and Van Loan (1996) for further details on the error bounds.

## 10Example

The use of f08flf (ddisna) in computing error bounds for eigenvectors of the symmetric eigenvalue problem is illustrated in Section 10 in f08faf (dsyev); its use in computing error bounds for singular vectors is illustrated in Section 10 in f08kbf (dgesvd); and its use in computing error bounds for eigenvectors of the generalized symmetric definite eigenvalue problem is illustrated in Section 10 in f08saf (dsygv).