Purpose
=======
This subroutine computes the square root of the I-th eigenvalue
of a positive symmetric rank-one modification of a 2-by-2 diagonal
matrix
diag( D ) * diag( D ) + RHO * Z * transpose(Z) .
The diagonal entries in the array D are assumed to satisfy
0 .LE. D(i) .LT. D(j) for i .LT. j .
We also assume RHO .GT. 0 and that the Euclidean norm of the vector
Z is one.
Namespace: DotNumerics.LinearAlgebra.CSLapackAssembly: DWSIM.MathOps.DotNumerics (in DWSIM.MathOps.DotNumerics.dll) Version: 1.0.0.0 (1.0.0.0)
Syntax public void Run(
int I,
double[] D,
int offset_d,
double[] Z,
int offset_z,
ref double[] DELTA,
int offset_delta,
double RHO,
ref double DSIGMA,
ref double[] WORK,
int offset_work
)
Public Sub Run (
I As Integer,
D As Double(),
offset_d As Integer,
Z As Double(),
offset_z As Integer,
ByRef DELTA As Double(),
offset_delta As Integer,
RHO As Double,
ByRef DSIGMA As Double,
ByRef WORK As Double(),
offset_work As Integer
)
Request Example
View SourceParameters
- I Int32
-
(input) INTEGER
The index of the eigenvalue to be computed. I = 1 or I = 2.
- D Double
-
(input) DOUBLE PRECISION array, dimension ( 2 )
The original eigenvalues. We assume 0 .LE. D(1) .LT. D(2).
- offset_d Int32
-
- Z Double
-
(input) DOUBLE PRECISION array, dimension ( 2 )
The components of the updating vector.
- offset_z Int32
-
- DELTA Double
-
(output) DOUBLE PRECISION array, dimension ( 2 )
Contains (D(j) - sigma_I) in its j-th component.
The vector DELTA contains the information necessary
to construct the eigenvectors.
- offset_delta Int32
-
- RHO Double
-
(input) DOUBLE PRECISION
The scalar in the symmetric updating formula.
- DSIGMA Double
-
(output) DOUBLE PRECISION
The computed sigma_I, the I-th updated eigenvalue.
- WORK Double
-
(workspace) DOUBLE PRECISION array, dimension ( 2 )
WORK contains (D(j) + sigma_I) in its j-th component.
- offset_work Int32
-
See Also