# NAG CL Interfacef08flc (ddisna)

## 1Purpose

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$.

## 2Specification

 #include
 void f08flc (Nag_JobType job, Integer m, Integer n, const double d[], double sep[], NagError *fail)
The function may be called by the names: f08flc, nag_lapackeig_ddisna or nag_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-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.

## 4References

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

## 5Arguments

1: $\mathbf{job}$Nag_JobType Input
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}$Integer Input
On entry: $m$, the number of rows of the matrix $A$.
Constraint: ${\mathbf{m}}\ge 0$.
3: $\mathbf{n}$Integer Input
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 double Input
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]$double Output
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 7 in the Introduction to the NAG Library CL Interface).

## 6Error Indicators and Warnings

NE_ALLOC_FAIL
Dynamic memory allocation failed.
See Section 3.1.2 in the Introduction to the NAG Library CL Interface 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 7.5 in the Introduction to the NAG Library CL Interface for further information.
NE_NO_LICENCE
Your licence key may have expired or may not have been installed correctly.
See Section 8 in the Introduction to the NAG Library CL Interface 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.

## 7Accuracy

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

## 8Parallelism and Performance

f08flc is not threaded in any implementation.