dstegr.f.html
来自「famous linear algebra library (LAPACK) p」· HTML 代码 · 共 203 行 · 第 1/2 页
HTML
203 行
</span><span class="comment">*</span><span class="comment"> ABSTOL (input) DOUBLE PRECISION
</span><span class="comment">*</span><span class="comment"> Unused. Was the absolute error tolerance for the
</span><span class="comment">*</span><span class="comment"> eigenvalues/eigenvectors in previous versions.
</span><span class="comment">*</span><span class="comment">
</span><span class="comment">*</span><span class="comment"> M (output) INTEGER
</span><span class="comment">*</span><span class="comment"> The total number of eigenvalues found. 0 <= M <= N.
</span><span class="comment">*</span><span class="comment"> If RANGE = 'A', M = N, and if RANGE = 'I', M = IU-IL+1.
</span><span class="comment">*</span><span class="comment">
</span><span class="comment">*</span><span class="comment"> W (output) DOUBLE PRECISION array, dimension (N)
</span><span class="comment">*</span><span class="comment"> The first M elements contain the selected eigenvalues in
</span><span class="comment">*</span><span class="comment"> ascending order.
</span><span class="comment">*</span><span class="comment">
</span><span class="comment">*</span><span class="comment"> Z (output) DOUBLE PRECISION array, dimension (LDZ, max(1,M) )
</span><span class="comment">*</span><span class="comment"> If JOBZ = 'V', and if INFO = 0, then the first M columns of Z
</span><span class="comment">*</span><span class="comment"> contain the orthonormal eigenvectors of the matrix T
</span><span class="comment">*</span><span class="comment"> corresponding to the selected eigenvalues, with the i-th
</span><span class="comment">*</span><span class="comment"> column of Z holding the eigenvector associated with W(i).
</span><span class="comment">*</span><span class="comment"> If JOBZ = 'N', then Z is not referenced.
</span><span class="comment">*</span><span class="comment"> Note: the user must ensure that at least max(1,M) columns are
</span><span class="comment">*</span><span class="comment"> supplied in the array Z; if RANGE = 'V', the exact value of M
</span><span class="comment">*</span><span class="comment"> is not known in advance and an upper bound must be used.
</span><span class="comment">*</span><span class="comment"> Supplying N columns is always safe.
</span><span class="comment">*</span><span class="comment">
</span><span class="comment">*</span><span class="comment"> LDZ (input) INTEGER
</span><span class="comment">*</span><span class="comment"> The leading dimension of the array Z. LDZ >= 1, and if
</span><span class="comment">*</span><span class="comment"> JOBZ = 'V', then LDZ >= max(1,N).
</span><span class="comment">*</span><span class="comment">
</span><span class="comment">*</span><span class="comment"> ISUPPZ (output) INTEGER ARRAY, dimension ( 2*max(1,M) )
</span><span class="comment">*</span><span class="comment"> The support of the eigenvectors in Z, i.e., the indices
</span><span class="comment">*</span><span class="comment"> indicating the nonzero elements in Z. The i-th computed eigenvector
</span><span class="comment">*</span><span class="comment"> is nonzero only in elements ISUPPZ( 2*i-1 ) through
</span><span class="comment">*</span><span class="comment"> ISUPPZ( 2*i ). This is relevant in the case when the matrix
</span><span class="comment">*</span><span class="comment"> is split. ISUPPZ is only accessed when JOBZ is 'V' and N > 0.
</span><span class="comment">*</span><span class="comment">
</span><span class="comment">*</span><span class="comment"> WORK (workspace/output) DOUBLE PRECISION array, dimension (LWORK)
</span><span class="comment">*</span><span class="comment"> On exit, if INFO = 0, WORK(1) returns the optimal
</span><span class="comment">*</span><span class="comment"> (and minimal) LWORK.
</span><span class="comment">*</span><span class="comment">
</span><span class="comment">*</span><span class="comment"> LWORK (input) INTEGER
</span><span class="comment">*</span><span class="comment"> The dimension of the array WORK. LWORK >= max(1,18*N)
</span><span class="comment">*</span><span class="comment"> if JOBZ = 'V', and LWORK >= max(1,12*N) if JOBZ = 'N'.
</span><span class="comment">*</span><span class="comment"> If LWORK = -1, then a workspace query is assumed; the routine
</span><span class="comment">*</span><span class="comment"> only calculates the optimal size of the WORK array, returns
</span><span class="comment">*</span><span class="comment"> this value as the first entry of the WORK array, and no error
</span><span class="comment">*</span><span class="comment"> message related to LWORK is issued by <a name="XERBLA.130"></a><a href="xerbla.f.html#XERBLA.1">XERBLA</a>.
</span><span class="comment">*</span><span class="comment">
</span><span class="comment">*</span><span class="comment"> IWORK (workspace/output) INTEGER array, dimension (LIWORK)
</span><span class="comment">*</span><span class="comment"> On exit, if INFO = 0, IWORK(1) returns the optimal LIWORK.
</span><span class="comment">*</span><span class="comment">
</span><span class="comment">*</span><span class="comment"> LIWORK (input) INTEGER
</span><span class="comment">*</span><span class="comment"> The dimension of the array IWORK. LIWORK >= max(1,10*N)
</span><span class="comment">*</span><span class="comment"> if the eigenvectors are desired, and LIWORK >= max(1,8*N)
</span><span class="comment">*</span><span class="comment"> if only the eigenvalues are to be computed.
</span><span class="comment">*</span><span class="comment"> If LIWORK = -1, then a workspace query is assumed; the
</span><span class="comment">*</span><span class="comment"> routine only calculates the optimal size of the IWORK array,
</span><span class="comment">*</span><span class="comment"> returns this value as the first entry of the IWORK array, and
</span><span class="comment">*</span><span class="comment"> no error message related to LIWORK is issued by <a name="XERBLA.142"></a><a href="xerbla.f.html#XERBLA.1">XERBLA</a>.
</span><span class="comment">*</span><span class="comment">
</span><span class="comment">*</span><span class="comment"> INFO (output) INTEGER
</span><span class="comment">*</span><span class="comment"> On exit, INFO
</span><span class="comment">*</span><span class="comment"> = 0: successful exit
</span><span class="comment">*</span><span class="comment"> < 0: if INFO = -i, the i-th argument had an illegal value
</span><span class="comment">*</span><span class="comment"> > 0: if INFO = 1X, internal error in <a name="DLARRE.148"></a><a href="dlarre.f.html#DLARRE.1">DLARRE</a>,
</span><span class="comment">*</span><span class="comment"> if INFO = 2X, internal error in <a name="DLARRV.149"></a><a href="dlarrv.f.html#DLARRV.1">DLARRV</a>.
</span><span class="comment">*</span><span class="comment"> Here, the digit X = ABS( IINFO ) < 10, where IINFO is
</span><span class="comment">*</span><span class="comment"> the nonzero error code returned by <a name="DLARRE.151"></a><a href="dlarre.f.html#DLARRE.1">DLARRE</a> or
</span><span class="comment">*</span><span class="comment"> <a name="DLARRV.152"></a><a href="dlarrv.f.html#DLARRV.1">DLARRV</a>, respectively.
</span><span class="comment">*</span><span class="comment">
</span><span class="comment">*</span><span class="comment"> Further Details
</span><span class="comment">*</span><span class="comment"> ===============
</span><span class="comment">*</span><span class="comment">
</span><span class="comment">*</span><span class="comment"> Based on contributions by
</span><span class="comment">*</span><span class="comment"> Inderjit Dhillon, IBM Almaden, USA
</span><span class="comment">*</span><span class="comment"> Osni Marques, LBNL/NERSC, USA
</span><span class="comment">*</span><span class="comment"> Christof Voemel, LBNL/NERSC, USA
</span><span class="comment">*</span><span class="comment">
</span><span class="comment">*</span><span class="comment"> =====================================================================
</span><span class="comment">*</span><span class="comment">
</span><span class="comment">*</span><span class="comment"> .. Local Scalars ..
</span> LOGICAL TRYRAC
<span class="comment">*</span><span class="comment"> ..
</span><span class="comment">*</span><span class="comment"> .. External Subroutines ..
</span> EXTERNAL <a name="DSTEMR.168"></a><a href="dstemr.f.html#DSTEMR.1">DSTEMR</a>
<span class="comment">*</span><span class="comment"> ..
</span><span class="comment">*</span><span class="comment"> .. Executable Statements ..
</span> INFO = 0
TRYRAC = .FALSE.
CALL <a name="DSTEMR.174"></a><a href="dstemr.f.html#DSTEMR.1">DSTEMR</a>( JOBZ, RANGE, N, D, E, VL, VU, IL, IU,
$ M, W, Z, LDZ, N, ISUPPZ, TRYRAC, WORK, LWORK,
$ IWORK, LIWORK, INFO )
<span class="comment">*</span><span class="comment">
</span><span class="comment">*</span><span class="comment"> End of <a name="DSTEGR.178"></a><a href="dstegr.f.html#DSTEGR.1">DSTEGR</a>
</span><span class="comment">*</span><span class="comment">
</span> END
</pre>
</body>
</html>
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?