Purpose
=======
DLASD8 finds the square roots of the roots of the secular equation,
as defined by the values in DSIGMA and Z. It makes the appropriate
calls to DLASD4, and stores, for each element in D, the distance
to its two nearest poles (elements in DSIGMA). It also updates
the arrays VF and VL, the first and last components of all the
right singular vectors of the original bidiagonal matrix.
DLASD8 is called from DLASD6.
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 ICOMPQ,
int K,
ref double[] D,
int offset_d,
ref double[] Z,
int offset_z,
ref double[] VF,
int offset_vf,
ref double[] VL,
int offset_vl,
ref double[] DIFL,
int offset_difl,
ref double[] DIFR,
int offset_difr,
int LDDIFR,
ref double[] DSIGMA,
int offset_dsigma,
ref double[] WORK,
int offset_work,
ref int INFO
)
Public Sub Run (
ICOMPQ As Integer,
K As Integer,
ByRef D As Double(),
offset_d As Integer,
ByRef Z As Double(),
offset_z As Integer,
ByRef VF As Double(),
offset_vf As Integer,
ByRef VL As Double(),
offset_vl As Integer,
ByRef DIFL As Double(),
offset_difl As Integer,
ByRef DIFR As Double(),
offset_difr As Integer,
LDDIFR As Integer,
ByRef DSIGMA As Double(),
offset_dsigma As Integer,
ByRef WORK As Double(),
offset_work As Integer,
ByRef INFO As Integer
)
Request Example
View SourceParameters
- ICOMPQ Int32
-
(input) INTEGER
Specifies whether singular vectors are to be computed in
factored form in the calling routine:
= 0: Compute singular values only.
= 1: Compute singular vectors in factored form as well.
- K Int32
-
(input) INTEGER
The number of terms in the rational function to be solved
by DLASD4. K .GE. 1.
- D Double
-
(output) DOUBLE PRECISION array, dimension ( K )
On output, D contains the updated singular values.
- offset_d Int32
-
- Z Double
-
(input) DOUBLE PRECISION array, dimension ( K )
The first K elements of this array contain the components
of the deflation-adjusted updating row vector.
- offset_z Int32
-
- VF Double
-
(input/output) DOUBLE PRECISION array, dimension ( K )
On entry, VF contains information passed through DBEDE8.
On exit, VF contains the first K components of the first
components of all right singular vectors of the bidiagonal
matrix.
- offset_vf Int32
-
- VL Double
-
(input/output) DOUBLE PRECISION array, dimension ( K )
On entry, VL contains information passed through DBEDE8.
On exit, VL contains the first K components of the last
components of all right singular vectors of the bidiagonal
matrix.
- offset_vl Int32
-
- DIFL Double
-
(output) DOUBLE PRECISION array, dimension ( K )
On exit, DIFL(I) = D(I) - DSIGMA(I).
- offset_difl Int32
-
- DIFR Double
-
(output) DOUBLE PRECISION array,
dimension ( LDDIFR, 2 ) if ICOMPQ = 1 and
dimension ( K ) if ICOMPQ = 0.
On exit, DIFR(I,1) = D(I) - DSIGMA(I+1), DIFR(K,1) is not
defined and will not be referenced.
If ICOMPQ = 1, DIFR(1:K,2) is an array containing the
normalizing factors for the right singular vector matrix.
- offset_difr Int32
-
- LDDIFR Int32
-
(input) INTEGER
The leading dimension of DIFR, must be at least K.
- DSIGMA Double
-
(input) DOUBLE PRECISION array, dimension ( K )
The first K elements of this array contain the old roots
of the deflated updating problem. These are the poles
of the secular equation.
- offset_dsigma Int32
-
- WORK Double
-
(workspace) DOUBLE PRECISION array, dimension at least 3 * K
- offset_work Int32
-
- INFO Int32
-
(output) INTEGER
= 0: successful exit.
.LT. 0: if INFO = -i, the i-th argument had an illegal value.
.GT. 0: if INFO = 1, an singular value did not converge
See Also