f08 Chapter Contents
f08 Chapter Introduction
NAG Library Manual

# NAG Library Function Documentnag_ddisna (f08flc)

## 1  Purpose

nag_ddisna (f08flc) 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$.

## 2  Specification

 #include #include
 void nag_ddisna (Nag_JobType job, Integer m, Integer n, const double d[], double sep[], NagError *fail)

## 3  Description

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-1\right]$. ${\mathbf{sep}}\left[i-1\right]$ is restricted to be at least $\epsilon {‖A‖}_{2}$ in order to limit the size of the error bound.

## 4  References

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

## 5  Arguments

1:    $\mathbf{job}$Nag_JobTypeInput
On entry: specifies for which problem the reciprocal condition number should be computed.
${\mathbf{job}}=\mathrm{Nag_EigVecs}$
The eigenvectors of a symmetric or Hermitian matrix.
${\mathbf{job}}=\mathrm{Nag_LeftSingVecs}$
The left singular vectors of a general matrix.
${\mathbf{job}}=\mathrm{Nag_RightSingVecs}$
The right singular vectors of a general matrix.
Constraint: ${\mathbf{job}}=\mathrm{Nag_EigVecs}$, $\mathrm{Nag_LeftSingVecs}$ or $\mathrm{Nag_RightSingVecs}$.
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}}=\mathrm{Nag_LeftSingVecs}$ or $\mathrm{Nag_RightSingVecs}$.
If ${\mathbf{job}}=\mathrm{Nag_EigVecs}$, n is not referenced.
Constraint: if ${\mathbf{job}}=\mathrm{Nag_LeftSingVecs}$ or $\mathrm{Nag_RightSingVecs}$, ${\mathbf{n}}\ge 0$.
4:    $\mathbf{d}\left[\mathit{dim}\right]$const doubleInput
Note: the dimension, dim, of the array d must be at least
• $\mathrm{max}\phantom{\rule{0.125em}{0ex}}\left(1,{\mathbf{m}}\right)$ when ${\mathbf{job}}=\mathrm{Nag_EigVecs}$;
• $\mathrm{max}\phantom{\rule{0.125em}{0ex}}\left(1,\mathrm{min}\phantom{\rule{0.125em}{0ex}}\left({\mathbf{m}},{\mathbf{n}}\right)\right)$ when ${\mathbf{job}}=\mathrm{Nag_LeftSingVecs}$ or $\mathrm{Nag_RightSingVecs}$.
On entry: the eigenvalues if ${\mathbf{job}}=\mathrm{Nag_EigVecs}$, or singular values if ${\mathbf{job}}=\mathrm{Nag_LeftSingVecs}$ or $\mathrm{Nag_RightSingVecs}$ of the matrix $A$.
Constraints:
• the elements of the array d must be in either increasing or decreasing order;
• if ${\mathbf{job}}=\mathrm{Nag_LeftSingVecs}$ or $\mathrm{Nag_RightSingVecs}$ the elements of d must be non-negative.
5:    $\mathbf{sep}\left[\mathit{dim}\right]$doubleOutput
Note: the dimension, dim, of the array sep must be at least
• $\mathrm{max}\phantom{\rule{0.125em}{0ex}}\left(1,{\mathbf{m}}\right)$ when ${\mathbf{job}}=\mathrm{Nag_EigVecs}$;
• $\mathrm{max}\phantom{\rule{0.125em}{0ex}}\left(1,\mathrm{min}\phantom{\rule{0.125em}{0ex}}\left({\mathbf{m}},{\mathbf{n}}\right)\right)$ when ${\mathbf{job}}=\mathrm{Nag_LeftSingVecs}$ or $\mathrm{Nag_RightSingVecs}$.
On exit: the reciprocal condition numbers of the vectors.
6:    $\mathbf{fail}$NagError *Input/Output
The NAG error argument (see Section 3.6 in the Essential Introduction).

## 6  Error Indicators and Warnings

NE_ALLOC_FAIL
Dynamic memory allocation failed.
See Section 3.2.1.2 in the Essential Introduction for further information.
On entry, argument $〈\mathit{\text{value}}〉$ had an illegal value.
NE_ENUM_INT
On entry, ${\mathbf{job}}=〈\mathit{\text{value}}〉$ and ${\mathbf{n}}=〈\mathit{\text{value}}〉$.
Constraint: if ${\mathbf{job}}=\mathrm{Nag_LeftSingVecs}$ or $\mathrm{Nag_RightSingVecs}$, ${\mathbf{n}}\ge 0$.
NE_INT
On entry, ${\mathbf{m}}=〈\mathit{\text{value}}〉$.
Constraint: ${\mathbf{m}}\ge 0$.
NE_INTERNAL_ERROR
An internal error has occurred in this function. Check the function call and any array sizes. If the call is correct then please contact NAG for assistance.
See Section 3.6.6 in the Essential Introduction for further information.
NE_NO_LICENCE
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.
NE_NOT_MONOTONIC
Constraint: the elements of the array d must be in either increasing or decreasing order.
if ${\mathbf{job}}=\mathrm{Nag_LeftSingVecs}$ or $\mathrm{Nag_RightSingVecs}$ the elements of d must be non-negative.

## 7  Accuracy

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

Not applicable.