Purpose
=======
DLAEDA computes the Z vector corresponding to the merge step in the
CURLVLth step of the merge process with TLVLS steps for the CURPBMth
problem.
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 N,
int TLVLS,
int CURLVL,
int CURPBM,
int[] PRMPTR,
int offset_prmptr,
int[] PERM,
int offset_perm,
int[] GIVPTR,
int offset_givptr,
int[] GIVCOL,
int offset_givcol,
double[] GIVNUM,
int offset_givnum,
double[] Q,
int offset_q,
int[] QPTR,
int offset_qptr,
ref double[] Z,
int offset_z,
ref double[] ZTEMP,
int offset_ztemp,
ref int INFO
)
Public Sub Run (
N As Integer,
TLVLS As Integer,
CURLVL As Integer,
CURPBM As Integer,
PRMPTR As Integer(),
offset_prmptr As Integer,
PERM As Integer(),
offset_perm As Integer,
GIVPTR As Integer(),
offset_givptr As Integer,
GIVCOL As Integer(),
offset_givcol As Integer,
GIVNUM As Double(),
offset_givnum As Integer,
Q As Double(),
offset_q As Integer,
QPTR As Integer(),
offset_qptr As Integer,
ByRef Z As Double(),
offset_z As Integer,
ByRef ZTEMP As Double(),
offset_ztemp As Integer,
ByRef INFO As Integer
)
Request Example
View SourceParameters
- N Int32
-
(input) INTEGER
The dimension of the symmetric tridiagonal matrix. N .GE. 0.
- TLVLS Int32
-
(input) INTEGER
The total number of merging levels in the overall divide and
conquer tree.
- CURLVL Int32
-
(input) INTEGER
The current level in the overall merge routine,
0 .LE. curlvl .LE. tlvls.
- CURPBM Int32
-
(input) INTEGER
The current problem in the current level in the overall
merge routine (counting from upper left to lower right).
- PRMPTR Int32
-
(input) INTEGER array, dimension (N lg N)
Contains a list of pointers which indicate where in PERM a
level's permutation is stored. PRMPTR(i+1) - PRMPTR(i)
indicates the size of the permutation and incidentally the
size of the full, non-deflated problem.
- offset_prmptr Int32
-
- PERM Int32
-
(input) INTEGER array, dimension (N lg N)
Contains the permutations (from deflation and sorting) to be
applied to each eigenblock.
- offset_perm Int32
-
- GIVPTR Int32
-
(input) INTEGER array, dimension (N lg N)
Contains a list of pointers which indicate where in GIVCOL a
level's Givens rotations are stored. GIVPTR(i+1) - GIVPTR(i)
indicates the number of Givens rotations.
- offset_givptr Int32
-
- GIVCOL Int32
-
(input) INTEGER array, dimension (2, N lg N)
Each pair of numbers indicates a pair of columns to take place
in a Givens rotation.
- offset_givcol Int32
-
- GIVNUM Double
-
(input) DOUBLE PRECISION array, dimension (2, N lg N)
Each number indicates the S value to be used in the
corresponding Givens rotation.
- offset_givnum Int32
-
- Q Double
-
(input) DOUBLE PRECISION array, dimension (N**2)
Contains the square eigenblocks from previous levels, the
starting positions for blocks are given by QPTR.
- offset_q Int32
-
- QPTR Int32
-
(input) INTEGER array, dimension (N+2)
Contains a list of pointers which indicate where in Q an
eigenblock is stored. SQRT( QPTR(i+1) - QPTR(i) ) indicates
the size of the block.
- offset_qptr Int32
-
- Z Double
-
(output) DOUBLE PRECISION array, dimension (N)
On output this vector contains the updating vector (the last
row of the first sub-eigenvector matrix and the first row of
the second sub-eigenvector matrix).
- offset_z Int32
-
- ZTEMP Double
-
(workspace) DOUBLE PRECISION array, dimension (N)
- offset_ztemp Int32
-
- INFO Int32
-
(output) INTEGER
= 0: successful exit.
.LT. 0: if INFO = -i, the i-th argument had an illegal value.
See Also