larrj#
Functions
-
void slarrj(const INT n, const f32 *D, const f32 *E2, const INT ifirst, const INT ilast, const f32 rtol, const INT offset, f32 *W, f32 *werr, f32 *work, INT *iwork, const f32 pivmin, const f32 spdiam, INT *info)#
Given the initial eigenvalue approximations of T, SLARRJ does bisection to refine the eigenvalues of T, W( IFIRST-OFFSET ) through W( ILAST-OFFSET ), to more accuracy.
Initial guesses for these eigenvalues are input in W, the corresponding estimate of the error in these guesses in WERR. During bisection, intervals [left, right] are maintained by storing their mid-points and semi-widths in the arrays W and WERR respectively.
Parameters
innThe order of the matrix. N >= 0.
inDDouble precision array, dimension (N). The N diagonal elements of T.
inE2Double precision array, dimension (N-1). The squares of the (N-1) subdiagonal elements of T.
inifirstThe index of the first eigenvalue to be computed (0-based).
inilastThe index of the last eigenvalue to be computed (0-based).
inrtolTolerance for the convergence of the bisection intervals. An interval [LEFT,RIGHT] has converged if RIGHT-LEFT < RTOL*MAX(|LEFT|,|RIGHT|).
inoffsetOffset for the arrays W and WERR, i.e., the IFIRST-OFFSET through ILAST-OFFSET elements of these arrays are to be used.
inoutWDouble precision array, dimension (N). On input, W( IFIRST-OFFSET ) through W( ILAST-OFFSET ) are estimates of the eigenvalues of L D L^T indexed IFIRST through ILAST. On output, these estimates are refined.
inoutwerrDouble precision array, dimension (N). On input, WERR( IFIRST-OFFSET ) through WERR( ILAST-OFFSET ) are the errors in the estimates of the corresponding elements in W. On output, these errors are refined.
outworkDouble precision array, dimension (2*N). Workspace.
outiworkInteger array, dimension (2*N). Workspace.
inpivminThe minimum pivot in the Sturm sequence for T.
inspdiamThe spectral diameter of T.
outinfoError flag.
void slarrj(
const INT n,
const f32* D,
const f32* E2,
const INT ifirst,
const INT ilast,
const f32 rtol,
const INT offset,
f32* W,
f32* werr,
f32* work,
INT* iwork,
const f32 pivmin,
const f32 spdiam,
INT* info
);
Functions
-
void dlarrj(const INT n, const f64 *D, const f64 *E2, const INT ifirst, const INT ilast, const f64 rtol, const INT offset, f64 *W, f64 *werr, f64 *work, INT *iwork, const f64 pivmin, const f64 spdiam, INT *info)#
Given the initial eigenvalue approximations of T, DLARRJ does bisection to refine the eigenvalues of T, W( IFIRST-OFFSET ) through W( ILAST-OFFSET ), to more accuracy.
Initial guesses for these eigenvalues are input in W, the corresponding estimate of the error in these guesses in WERR. During bisection, intervals [left, right] are maintained by storing their mid-points and semi-widths in the arrays W and WERR respectively.
Parameters
innThe order of the matrix. N >= 0.
inDDouble precision array, dimension (N). The N diagonal elements of T.
inE2Double precision array, dimension (N-1). The squares of the (N-1) subdiagonal elements of T.
inifirstThe index of the first eigenvalue to be computed (0-based).
inilastThe index of the last eigenvalue to be computed (0-based).
inrtolTolerance for the convergence of the bisection intervals. An interval [LEFT,RIGHT] has converged if RIGHT-LEFT < RTOL*MAX(|LEFT|,|RIGHT|).
inoffsetOffset for the arrays W and WERR, i.e., the IFIRST-OFFSET through ILAST-OFFSET elements of these arrays are to be used.
inoutWDouble precision array, dimension (N). On input, W( IFIRST-OFFSET ) through W( ILAST-OFFSET ) are estimates of the eigenvalues of L D L^T indexed IFIRST through ILAST. On output, these estimates are refined.
inoutwerrDouble precision array, dimension (N). On input, WERR( IFIRST-OFFSET ) through WERR( ILAST-OFFSET ) are the errors in the estimates of the corresponding elements in W. On output, these errors are refined.
outworkDouble precision array, dimension (2*N). Workspace.
outiworkInteger array, dimension (2*N). Workspace.
inpivminThe minimum pivot in the Sturm sequence for T.
inspdiamThe spectral diameter of T.
outinfoError flag.
void dlarrj(
const INT n,
const f64* D,
const f64* E2,
const INT ifirst,
const INT ilast,
const f64 rtol,
const INT offset,
f64* W,
f64* werr,
f64* work,
INT* iwork,
const f64 pivmin,
const f64 spdiam,
INT* info
);