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

Syntax

C#
public static void f08fl(
	string job,
	int m,
	int n,
	double[] d,
	double[] sep,
	out int info
)
Visual Basic
Public Shared Sub f08fl ( _
	job As String, _
	m As Integer, _
	n As Integer, _
	d As Double(), _
	sep As Double(), _
	<OutAttribute> ByRef info As Integer _
)
Visual C++
public:
static void f08fl(
	String^ job, 
	int m, 
	int n, 
	array<double>^ d, 
	array<double>^ sep, 
	[OutAttribute] int% info
)
F#
static member f08fl : 
        job : string * 
        m : int * 
        n : int * 
        d : float[] * 
        sep : float[] * 
        info : int byref -> unit 

Parameters

job
Type: System..::..String
On entry: specifies for which problem the reciprocal condition number should be computed.
job="E"
The eigenvectors of a symmetric or Hermitian matrix.
job="L"
The left singular vectors of a general matrix.
job="R"
The right singular vectors of a general matrix.
Constraint: job="E", "L" or "R".
m
Type: System..::..Int32
On entry: m, the number of rows of the matrix A.
Constraint: m0.
n
Type: System..::..Int32
On entry: n, the number of columns of the matrix when job="L" or "R".
If job="E", n is not referenced.
Constraint: if job="L" or "R", n0.
d
Type: array<System..::..Double>[]()[][]
An array of size [dim1]
Note: the dimension of the array d must be at least max1,m if job="E" and at least max1,minm,n if job="L" or "R".
On entry: the eigenvalues if job="E", or singular values if job="L" or "R" of the matrix A.
Constraints:
  • the elements of the array d must be in either increasing or decreasing order;
  • if job="L" or "R" the elements of d must be non-negative.
sep
Type: array<System..::..Double>[]()[][]
An array of size [dim1]
Note: the dimension of the array sep must be at least max1,m if job="E" and at least max1,minm,n if job="L" or "R".
On exit: the reciprocal condition numbers of the vectors.
info
Type: System..::..Int32%
On exit: info=0 unless the method detects an error (see [Error Indicators and Warnings]).

Description

The bound on the error, measured by the angle in radians, for the ith computed vector is given by εA2/sepi, where ε is the machine precision and sepi is the reciprocal condition number for the vectors, returned in the array element sep[i-1]. sep[i-1] is restricted to be at least εA2 in order to limit the size of the error bound.

References

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

Error Indicators and Warnings

info<0
If info=-i, argument i had an illegal value. An explanatory message is output, and execution of the program is terminated.
ifail=-9000
An error occured, see message report.
ifail=-8000
Negative dimension for array value
ifail=-6000
Invalid Parameters value
ifail=-6000
Invalid Parameters value

Accuracy

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

Parallelism and Performance

None.

Further Comments

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

Example

The use of f08fl in computing error bounds for eigenvectors of the symmetric eigenvalue problem is illustrated in [Example] in f08fa; its use in computing error bounds for singular vectors is illustrated in [Example] in f08kb; and its use in computing error bounds for eigenvectors of the generalized symmetric definite eigenvalue problem is illustrated in [Example] in f08sa.

See Also