Click or drag to resize

DLAED2Run Method

Purpose ======= DLAED2 merges the two sets of eigenvalues together into a single sorted set. Then it tries to deflate the size of the problem. There are two ways in which deflation can occur: when two or more eigenvalues are close together or if there is a tiny entry in the Z vector. For each such occurrence the order of the related secular equation problem is reduced by one.

Namespace: DotNumerics.LinearAlgebra.CSLapack
Assembly: DWSIM.MathOps.DotNumerics (in DWSIM.MathOps.DotNumerics.dll) Version: 1.0.0.0 (1.0.0.0)
Syntax
public void Run(
	ref int K,
	int N,
	int N1,
	ref double[] D,
	int offset_d,
	ref double[] Q,
	int offset_q,
	int LDQ,
	ref int[] INDXQ,
	int offset_indxq,
	ref double RHO,
	ref double[] Z,
	int offset_z,
	ref double[] DLAMDA,
	int offset_dlamda,
	ref double[] W,
	int offset_w,
	ref double[] Q2,
	int offset_q2,
	ref int[] INDX,
	int offset_indx,
	ref int[] INDXC,
	int offset_indxc,
	ref int[] INDXP,
	int offset_indxp,
	ref int[] COLTYP,
	int offset_coltyp,
	ref int INFO
)
Request Example View Source

Parameters

K  Int32
(output) INTEGER The number of non-deflated eigenvalues, and the order of the related secular equation. 0 .LE. K .LE.N.
N  Int32
(input) INTEGER The dimension of the symmetric tridiagonal matrix. N .GE. 0.
N1  Int32
(input) INTEGER The location of the last eigenvalue in the leading sub-matrix. min(1,N) .LE. N1 .LE. N/2.
D  Double
(input/output) DOUBLE PRECISION array, dimension (N) On entry, D contains the eigenvalues of the two submatrices to be combined. On exit, D contains the trailing (N-K) updated eigenvalues (those which were deflated) sorted into increasing order.
offset_d  Int32
 
Q  Double
(input/output) DOUBLE PRECISION array, dimension (LDQ, N) On entry, Q contains the eigenvectors of two submatrices in the two square blocks with corners at (1,1), (N1,N1) and (N1+1, N1+1), (N,N). On exit, Q contains the trailing (N-K) updated eigenvectors (those which were deflated) in its last N-K columns.
offset_q  Int32
 
LDQ  Int32
(input) INTEGER The leading dimension of the array Q. LDQ .GE. max(1,N).
INDXQ  Int32
(input/output) INTEGER array, dimension (N) The permutation which separately sorts the two sub-problems in D into ascending order. Note that elements in the second half of this permutation must first have N1 added to their values. Destroyed on exit.
offset_indxq  Int32
 
RHO  Double
(input/output) DOUBLE PRECISION On entry, the off-diagonal element associated with the rank-1 cut which originally split the two submatrices which are now being recombined. On exit, RHO has been modified to the value required by DLAED3.
Z  Double
(input) DOUBLE PRECISION array, dimension (N) On entry, Z contains the updating vector (the last row of the first sub-eigenvector matrix and the first row of the second sub-eigenvector matrix). On exit, the contents of Z have been destroyed by the updating process.
offset_z  Int32
 
DLAMDA  Double
(output) DOUBLE PRECISION array, dimension (N) A copy of the first K eigenvalues which will be used by DLAED3 to form the secular equation.
offset_dlamda  Int32
 
W  Double
(output) DOUBLE PRECISION array, dimension (N) The first k values of the final deflation-altered z-vector which will be passed to DLAED3.
offset_w  Int32
 
Q2  Double
(output) DOUBLE PRECISION array, dimension (N1**2+(N-N1)**2) A copy of the first K eigenvectors which will be used by DLAED3 in a matrix multiply (DGEMM) to solve for the new eigenvectors.
offset_q2  Int32
 
INDX  Int32
(workspace) INTEGER array, dimension (N) The permutation used to sort the contents of DLAMDA into ascending order.
offset_indx  Int32
 
INDXC  Int32
(output) INTEGER array, dimension (N) The permutation used to arrange the columns of the deflated Q matrix into three groups: the first group contains non-zero elements only at and above N1, the second contains non-zero elements only below N1, and the third is dense.
offset_indxc  Int32
 
INDXP  Int32
(workspace) INTEGER array, dimension (N) The permutation used to place deflated values of D at the end of the array. INDXP(1:K) points to the nondeflated D-values and INDXP(K+1:N) points to the deflated eigenvalues.
offset_indxp  Int32
 
COLTYP  Int32
(workspace/output) INTEGER array, dimension (N) During execution, a label which will indicate which of the following types a column in the Q2 matrix is: 1 : non-zero in the upper half only; 2 : dense; 3 : non-zero in the lower half only; 4 : deflated. On exit, COLTYP(i) is the number of columns of type i, for i=1 to 4 only.
offset_coltyp  Int32
 
INFO  Int32
(output) INTEGER = 0: successful exit. .LT. 0: if INFO = -i, the i-th argument had an illegal value.
See Also