org.netlib.lapack
Class Dlarrv
java.lang.Object
org.netlib.lapack.Dlarrv
public class Dlarrv
- extends java.lang.Object
Following is the description from the original
Fortran source. For each array argument, the Java
version will include an integer offset parameter, so
the arguments may not match the description exactly.
Contact seymour@cs.utk.edu with any questions.
* ..
*
* Purpose
* =======
*
* DLARRV computes the eigenvectors of the tridiagonal matrix
* T = L D L^T given L, D and APPROXIMATIONS to the eigenvalues of L D L
* The input eigenvalues should have been computed by DLARRE.
*
* Arguments
* =========
*
* N (input) INTEGER
* The order of the matrix. N >= 0.
*
* VL (input) DOUBLE PRECISION
* VU (input) DOUBLE PRECISION
* Lower and upper bounds of the interval that contains the desi
* eigenvalues. VL < VU. Needed to compute gaps on the left or r
* end of the extremal eigenvalues in the desired RANGE.
*
* D (input/output) DOUBLE PRECISION array, dimension (N)
* On entry, the N diagonal elements of the diagonal matrix D.
* On exit, D may be overwritten.
*
* L (input/output) DOUBLE PRECISION array, dimension (N)
* On entry, the (N-1) subdiagonal elements of the unit
* bidiagonal matrix L are in elements 1 to N-1 of L
* (if the matrix is not splitted.) At the end of each block
* is stored the corresponding shift as given by DLARRE.
* On exit, L is overwritten.
*
* PIVMIN (in) DOUBLE PRECISION
* The minimum pivot allowed in the Sturm sequence.
*
* ISPLIT (input) INTEGER array, dimension (N)
* The splitting points, at which T breaks up into blocks.
* The first block consists of rows/columns 1 to
* ISPLIT( 1 ), the second of rows/columns ISPLIT( 1 )+1
* through ISPLIT( 2 ), etc.
*
* M (input) INTEGER
* The total number of input eigenvalues. 0 <= M <= N.
*
* DOL (input) INTEGER
* DOU (input) INTEGER
* If the user wants to compute only selected eigenvectors from
* the eigenvalues supplied, he can specify an index range DOL:D
* Or else the setting DOL=1, DOU=M should be applied.
* Note that DOL and DOU refer to the order in which the eigenva
* are stored in W.
* If the user wants to compute only selected eigenpairs, then
* the columns DOL-1 to DOU+1 of the eigenvector space Z contain
* computed eigenvectors. All other columns of Z are set to zero
*
* MINRGP (input) DOUBLE PRECISION
*
* RTOL1 (input) DOUBLE PRECISION
* RTOL2 (input) DOUBLE PRECISION
* Parameters for bisection.
* An interval [LEFT,RIGHT] has converged if
* RIGHT-LEFT.LT.MAX( RTOL1*GAP, RTOL2*MAX(|LEFT|,|RIGHT|) )
*
* W (input/output) DOUBLE PRECISION array, dimension (N)
* The first M elements of W contain the APPROXIMATE eigenvalues
* which eigenvectors are to be computed. The eigenvalues
* should be grouped by split-off block and ordered from
* smallest to largest within the block ( The output array
* W from DLARRE is expected here ). Furthermore, they are with
* respect to the shift of the corresponding root representation
* for their block. On exit, W holds the eigenvalues of the
* UNshifted matrix.
*
* WERR (input/output) DOUBLE PRECISION array, dimension (N)
* The first M elements contain the semiwidth of the uncertainty
* interval of the corresponding eigenvalue in W
*
* WGAP (input/output) DOUBLE PRECISION array, dimension (N)
* The separation from the right neighbor eigenvalue in W.
*
* IBLOCK (input) INTEGER array, dimension (N)
* The indices of the blocks (submatrices) associated with the
* corresponding eigenvalues in W; IBLOCK(i)=1 if eigenvalue
* W(i) belongs to the first block from the top, =2 if W(i)
* belongs to the second block, etc.
*
* INDEXW (input) INTEGER array, dimension (N)
* The indices of the eigenvalues within each block (submatrix);
* for example, INDEXW(i)= 10 and IBLOCK(i)=2 imply that the
* i-th eigenvalue W(i) is the 10-th eigenvalue in the second bl
*
* GERS (input) DOUBLE PRECISION array, dimension (2*N)
* The N Gerschgorin intervals (the i-th Gerschgorin interval
* is (GERS(2*i-1), GERS(2*i)). The Gerschgorin intervals should
* be computed from the original UNshifted matrix.
*
* Z (output) DOUBLE PRECISION array, dimension (LDZ, max(1,M) )
* If INFO = 0, the first M columns of Z contain the
* orthonormal eigenvectors of the matrix T
* corresponding to the input eigenvalues, with the i-th
* column of Z holding the eigenvector associated with W(i).
* Note: the user must ensure that at least max(1,M) columns are
* supplied in the array Z.
*
* LDZ (input) INTEGER
* The leading dimension of the array Z. LDZ >= 1, and if
* JOBZ = 'V', LDZ >= max(1,N).
*
* ISUPPZ (output) INTEGER array, dimension ( 2*max(1,M) )
* The support of the eigenvectors in Z, i.e., the indices
* indicating the nonzero elements in Z. The I-th eigenvector
* is nonzero only in elements ISUPPZ( 2*I-1 ) through
* ISUPPZ( 2*I ).
*
* WORK (workspace) DOUBLE PRECISION array, dimension (12*N)
*
* IWORK (workspace) INTEGER array, dimension (7*N)
*
* INFO (output) INTEGER
* = 0: successful exit
*
* > 0: A problem occured in DLARRV.
* < 0: One of the called subroutines signaled an internal prob
* Needs inspection of the corresponding parameter IINFO
* for further information.
*
* =-1: Problem in DLARRB when refining a child's eigenvalues.
* =-2: Problem in DLARRF when computing the RRR of a child.
* When a child is inside a tight cluster, it can be diffi
* to find an RRR. A partial remedy from the user's point
* view is to make the parameter MINRGP smaller and recomp
* However, as the orthogonality of the computed vectors i
* proportional to 1/MINRGP, the user should be aware that
* he might be trading in precision when he decreases MINR
* =-3: Problem in DLARRB when refining a single eigenvalue
* after the Rayleigh correction was rejected.
* = 5: The Rayleigh Quotient Iteration failed to converge to
* full accuracy in MAXITR steps.
*
* Further Details
* ===============
*
* Based on contributions by
* Beresford Parlett, University of California, Berkeley, USA
* Jim Demmel, University of California, Berkeley, USA
* Inderjit Dhillon, University of Texas, Austin, USA
* Osni Marques, LBNL/NERSC, USA
* Christof Voemel, University of California, Berkeley, USA
*
* =====================================================================
*
* .. Parameters ..
Method Summary |
static void |
dlarrv(int n,
double vl,
double vu,
double[] d,
int _d_offset,
double[] l,
int _l_offset,
double pivmin,
int[] isplit,
int _isplit_offset,
int m,
int dol,
int dou,
double minrgp,
doubleW rtol1,
doubleW rtol2,
double[] w,
int _w_offset,
double[] werr,
int _werr_offset,
double[] wgap,
int _wgap_offset,
int[] iblock,
int _iblock_offset,
int[] indexw,
int _indexw_offset,
double[] gers,
int _gers_offset,
double[] z,
int _z_offset,
int ldz,
int[] isuppz,
int _isuppz_offset,
double[] work,
int _work_offset,
int[] iwork,
int _iwork_offset,
intW info)
|
Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
Dlarrv
public Dlarrv()
dlarrv
public static void dlarrv(int n,
double vl,
double vu,
double[] d,
int _d_offset,
double[] l,
int _l_offset,
double pivmin,
int[] isplit,
int _isplit_offset,
int m,
int dol,
int dou,
double minrgp,
doubleW rtol1,
doubleW rtol2,
double[] w,
int _w_offset,
double[] werr,
int _werr_offset,
double[] wgap,
int _wgap_offset,
int[] iblock,
int _iblock_offset,
int[] indexw,
int _indexw_offset,
double[] gers,
int _gers_offset,
double[] z,
int _z_offset,
int ldz,
int[] isuppz,
int _isuppz_offset,
double[] work,
int _work_offset,
int[] iwork,
int _iwork_offset,
intW info)