Purpose
=======
This subroutine computes the I-th eigenvalue of a symmetric rank-one
modification of a 2-by-2 diagonal matrix
diag( D ) + RHO * Z * transpose(Z) .
The diagonal elements in the array D are assumed to satisfy
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 DLAM
)
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 DLAM As Double
)
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 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)
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.
- DLAM Double
-
(output) DOUBLE PRECISION
The computed lambda_I, the I-th updated eigenvalue.
See Also