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.CSLapackAssembly: DWSIM.MathOps.DotNumerics (in DWSIM.MathOps.DotNumerics.dll) Version: 1.0.0.0 (1.0.0.0)
 Syntax
Syntaxpublic 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
)
Public Sub Run ( 
	ByRef K As Integer,
	N As Integer,
	N1 As Integer,
	ByRef D As Double(),
	offset_d As Integer,
	ByRef Q As Double(),
	offset_q As Integer,
	LDQ As Integer,
	ByRef INDXQ As Integer(),
	offset_indxq As Integer,
	ByRef RHO As Double,
	ByRef Z As Double(),
	offset_z As Integer,
	ByRef DLAMDA As Double(),
	offset_dlamda As Integer,
	ByRef W As Double(),
	offset_w As Integer,
	ByRef Q2 As Double(),
	offset_q2 As Integer,
	ByRef INDX As Integer(),
	offset_indx As Integer,
	ByRef INDXC As Integer(),
	offset_indxc As Integer,
	ByRef INDXP As Integer(),
	offset_indxp As Integer,
	ByRef COLTYP As Integer(),
	offset_coltyp As Integer,
	ByRef INFO As Integer
)
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
See Also