lar1v#
Functions
-
void slar1v(const INT n, const INT b1, const INT bn, const f32 lambda, const f32 *restrict D, const f32 *restrict L, const f32 *restrict LD, const f32 *restrict LLD, const f32 pivmin, const f32 gaptol, f32 *restrict Z, const INT wantnc, INT *negcnt, f32 *ztz, f32 *mingma, INT *r, INT *restrict isuppz, f32 *nrminv, f32 *resid, f32 *rqcorr, f32 *restrict work)#
SLAR1V computes the (scaled) r-th column of the inverse of the submatrix in rows B1 through BN of the tridiagonal matrix L D L^T - sigma I.
When sigma is close to an eigenvalue, the computed vector is an accurate eigenvector. Usually, r corresponds to the index where the eigenvector is largest in magnitude. The following steps accomplish this computation: (a) Stationary qd transform, L D L^T - sigma I = L(+) D(+) L(+)^T, (b) Progressive qd transform, L D L^T - sigma I = U(-) D(-) U(-)^T, (c) Computation of the diagonal elements of the inverse of L D L^T - sigma I by combining the above transforms, and choosing r as the index where the diagonal of the inverse is (one of the) largest in magnitude. (d) Computation of the (scaled) r-th column of the inverse using the twisted factorization obtained by combining the top part of the the stationary and the bottom part of the progressive transform.
Parameters
innThe order of the matrix L D L^T. n >= 0.
inb1First index of the submatrix (0-based).
inbnLast index of the submatrix (0-based).
inlambdaThe shift. Should be a good approximation to an eigenvalue of L D L^T.
inDDouble precision array, dimension (n). The n diagonal elements of the diagonal matrix D.
inLDouble precision array, dimension (n-1). The (n-1) subdiagonal elements of the unit bidiagonal matrix L.
inLDDouble precision array, dimension (n-1). The n-1 elements L(i)*D(i).
inLLDDouble precision array, dimension (n-1). The n-1 elements L(i)*L(i)*D(i).
inpivminThe minimum pivot in the Sturm sequence.
ingaptolTolerance that indicates when eigenvector entries are negligible w.r.t. their contribution to the residual.
inoutZDouble precision array, dimension (n). On input, all entries of Z must be set to 0. On output, Z contains the (scaled) r-th column of the inverse. The scaling is such that Z[r] equals 1.
inwantncIf nonzero, NEGCNT will be computed.
outnegcntIf wantnc is nonzero, the number of pivots < pivmin in the matrix factorization L D L^T; otherwise -1.
outztzThe square of the 2-norm of Z.
outmingmaThe reciprocal of the largest (in magnitude) diagonal element of the inverse of L D L^T - sigma I.
inoutrThe twist index (0-based). On input, if r < 0, r is set to the index where (L D L^T - sigma I)^{-1} is largest in magnitude. If 0 <= r < n, r is unchanged. On output, contains the twist index used to compute Z.
outisuppzInteger array, dimension (2). The support of the vector Z (0-based indices). Z is nonzero only in elements isuppz[0] through isuppz[1].
outnrminv1/sqrt(ztz).
outresidThe residual of the FP vector: |mingma|/sqrt(ztz).
outrqcorrThe Rayleigh Quotient correction to lambda.
outworkDouble precision array, dimension (4*n).
void slar1v(
const INT n,
const INT b1,
const INT bn,
const f32 lambda,
const f32* restrict D,
const f32* restrict L,
const f32* restrict LD,
const f32* restrict LLD,
const f32 pivmin,
const f32 gaptol,
f32* restrict Z,
const INT wantnc,
INT* negcnt,
f32* ztz,
f32* mingma,
INT* r,
INT* restrict isuppz,
f32* nrminv,
f32* resid,
f32* rqcorr,
f32* restrict work
);
Functions
-
void dlar1v(const INT n, const INT b1, const INT bn, const f64 lambda, const f64 *restrict D, const f64 *restrict L, const f64 *restrict LD, const f64 *restrict LLD, const f64 pivmin, const f64 gaptol, f64 *restrict Z, const INT wantnc, INT *negcnt, f64 *ztz, f64 *mingma, INT *r, INT *restrict isuppz, f64 *nrminv, f64 *resid, f64 *rqcorr, f64 *restrict work)#
DLAR1V computes the (scaled) r-th column of the inverse of the submatrix in rows B1 through BN of the tridiagonal matrix L D L^T - sigma I.
When sigma is close to an eigenvalue, the computed vector is an accurate eigenvector. Usually, r corresponds to the index where the eigenvector is largest in magnitude. The following steps accomplish this computation: (a) Stationary qd transform, L D L^T - sigma I = L(+) D(+) L(+)^T, (b) Progressive qd transform, L D L^T - sigma I = U(-) D(-) U(-)^T, (c) Computation of the diagonal elements of the inverse of L D L^T - sigma I by combining the above transforms, and choosing r as the index where the diagonal of the inverse is (one of the) largest in magnitude. (d) Computation of the (scaled) r-th column of the inverse using the twisted factorization obtained by combining the top part of the the stationary and the bottom part of the progressive transform.
Parameters
innThe order of the matrix L D L^T. n >= 0.
inb1First index of the submatrix (0-based).
inbnLast index of the submatrix (0-based).
inlambdaThe shift. Should be a good approximation to an eigenvalue of L D L^T.
inDDouble precision array, dimension (n). The n diagonal elements of the diagonal matrix D.
inLDouble precision array, dimension (n-1). The (n-1) subdiagonal elements of the unit bidiagonal matrix L.
inLDDouble precision array, dimension (n-1). The n-1 elements L(i)*D(i).
inLLDDouble precision array, dimension (n-1). The n-1 elements L(i)*L(i)*D(i).
inpivminThe minimum pivot in the Sturm sequence.
ingaptolTolerance that indicates when eigenvector entries are negligible w.r.t. their contribution to the residual.
inoutZDouble precision array, dimension (n). On input, all entries of Z must be set to 0. On output, Z contains the (scaled) r-th column of the inverse. The scaling is such that Z[r] equals 1.
inwantncIf nonzero, NEGCNT will be computed.
outnegcntIf wantnc is nonzero, the number of pivots < pivmin in the matrix factorization L D L^T; otherwise -1.
outztzThe square of the 2-norm of Z.
outmingmaThe reciprocal of the largest (in magnitude) diagonal element of the inverse of L D L^T - sigma I.
inoutrThe twist index (0-based). On input, if r < 0, r is set to the index where (L D L^T - sigma I)^{-1} is largest in magnitude. If 0 <= r < n, r is unchanged. On output, contains the twist index used to compute Z.
outisuppzInteger array, dimension (2). The support of the vector Z (0-based indices). Z is nonzero only in elements isuppz[0] through isuppz[1].
outnrminv1/sqrt(ztz).
outresidThe residual of the FP vector: |mingma|/sqrt(ztz).
outrqcorrThe Rayleigh Quotient correction to lambda.
outworkDouble precision array, dimension (4*n).
void dlar1v(
const INT n,
const INT b1,
const INT bn,
const f64 lambda,
const f64* restrict D,
const f64* restrict L,
const f64* restrict LD,
const f64* restrict LLD,
const f64 pivmin,
const f64 gaptol,
f64* restrict Z,
const INT wantnc,
INT* negcnt,
f64* ztz,
f64* mingma,
INT* r,
INT* restrict isuppz,
f64* nrminv,
f64* resid,
f64* rqcorr,
f64* restrict work
);
Functions
-
void clar1v(const INT n, const INT b1, const INT bn, const f32 lambda, const f32 *restrict D, const f32 *restrict L, const f32 *restrict LD, const f32 *restrict LLD, const f32 pivmin, const f32 gaptol, c64 *restrict Z, const INT wantnc, INT *negcnt, f32 *ztz, f32 *mingma, INT *r, INT *restrict isuppz, f32 *nrminv, f32 *resid, f32 *rqcorr, f32 *restrict work)#
CLAR1V computes the (scaled) r-th column of the inverse of the submatrix in rows B1 through BN of the tridiagonal matrix L D L^T - sigma I.
When sigma is close to an eigenvalue, the computed vector is an accurate eigenvector. Usually, r corresponds to the index where the eigenvector is largest in magnitude. The following steps accomplish this computation: (a) Stationary qd transform, L D L^T - sigma I = L(+) D(+) L(+)^T, (b) Progressive qd transform, L D L^T - sigma I = U(-) D(-) U(-)^T, (c) Computation of the diagonal elements of the inverse of L D L^T - sigma I by combining the above transforms, and choosing r as the index where the diagonal of the inverse is (one of the) largest in magnitude. (d) Computation of the (scaled) r-th column of the inverse using the twisted factorization obtained by combining the top part of the the stationary and the bottom part of the progressive transform.
Parameters
innThe order of the matrix L D L^T. n >= 0.
inb1First index of the submatrix (0-based).
inbnLast index of the submatrix (0-based).
inlambdaThe shift. Should be a good approximation to an eigenvalue of L D L^T.
inDSingle precision array, dimension (n). The n diagonal elements of the diagonal matrix D.
inLSingle precision array, dimension (n-1). The (n-1) subdiagonal elements of the unit bidiagonal matrix L.
inLDSingle precision array, dimension (n-1). The n-1 elements L(i)*D(i).
inLLDSingle precision array, dimension (n-1). The n-1 elements L(i)*L(i)*D(i).
inpivminThe minimum pivot in the Sturm sequence.
ingaptolTolerance that indicates when eigenvector entries are negligible w.r.t. their contribution to the residual.
inoutZComplex array, dimension (n). On input, all entries of Z must be set to 0. On output, Z contains the (scaled) r-th column of the inverse. The scaling is such that Z[r] equals 1.
inwantncIf nonzero, NEGCNT will be computed.
outnegcntIf wantnc is nonzero, the number of pivots < pivmin in the matrix factorization L D L^T; otherwise -1.
outztzThe square of the 2-norm of Z.
outmingmaThe reciprocal of the largest (in magnitude) diagonal element of the inverse of L D L^T - sigma I.
inoutrThe twist index (0-based). On input, if r < 0, r is set to the index where (L D L^T - sigma I)^{-1} is largest in magnitude. If 0 <= r < n, r is unchanged. On output, contains the twist index used to compute Z.
outisuppzInteger array, dimension (2). The support of the vector Z (0-based indices). Z is nonzero only in elements isuppz[0] through isuppz[1].
outnrminv1/sqrt(ztz).
outresidThe residual of the FP vector: |mingma|/sqrt(ztz).
outrqcorrThe Rayleigh Quotient correction to lambda.
outworkSingle precision array, dimension (4*n).
void clar1v(
const INT n,
const INT b1,
const INT bn,
const f32 lambda,
const f32* restrict D,
const f32* restrict L,
const f32* restrict LD,
const f32* restrict LLD,
const f32 pivmin,
const f32 gaptol,
c64* restrict Z,
const INT wantnc,
INT* negcnt,
f32* ztz,
f32* mingma,
INT* r,
INT* restrict isuppz,
f32* nrminv,
f32* resid,
f32* rqcorr,
f32* restrict work
);
Functions
-
void zlar1v(const INT n, const INT b1, const INT bn, const f64 lambda, const f64 *restrict D, const f64 *restrict L, const f64 *restrict LD, const f64 *restrict LLD, const f64 pivmin, const f64 gaptol, c128 *restrict Z, const INT wantnc, INT *negcnt, f64 *ztz, f64 *mingma, INT *r, INT *restrict isuppz, f64 *nrminv, f64 *resid, f64 *rqcorr, f64 *restrict work)#
ZLAR1V computes the (scaled) r-th column of the inverse of the submatrix in rows B1 through BN of the tridiagonal matrix L D L^T - sigma I.
When sigma is close to an eigenvalue, the computed vector is an accurate eigenvector. Usually, r corresponds to the index where the eigenvector is largest in magnitude. The following steps accomplish this computation: (a) Stationary qd transform, L D L^T - sigma I = L(+) D(+) L(+)^T, (b) Progressive qd transform, L D L^T - sigma I = U(-) D(-) U(-)^T, (c) Computation of the diagonal elements of the inverse of L D L^T - sigma I by combining the above transforms, and choosing r as the index where the diagonal of the inverse is (one of the) largest in magnitude. (d) Computation of the (scaled) r-th column of the inverse using the twisted factorization obtained by combining the top part of the the stationary and the bottom part of the progressive transform.
Parameters
innThe order of the matrix L D L^T. n >= 0.
inb1First index of the submatrix (0-based).
inbnLast index of the submatrix (0-based).
inlambdaThe shift. Should be a good approximation to an eigenvalue of L D L^T.
inDDouble precision array, dimension (n). The n diagonal elements of the diagonal matrix D.
inLDouble precision array, dimension (n-1). The (n-1) subdiagonal elements of the unit bidiagonal matrix L.
inLDDouble precision array, dimension (n-1). The n-1 elements L(i)*D(i).
inLLDDouble precision array, dimension (n-1). The n-1 elements L(i)*L(i)*D(i).
inpivminThe minimum pivot in the Sturm sequence.
ingaptolTolerance that indicates when eigenvector entries are negligible w.r.t. their contribution to the residual.
inoutZComplex array, dimension (n). On input, all entries of Z must be set to 0. On output, Z contains the (scaled) r-th column of the inverse. The scaling is such that Z[r] equals 1.
inwantncIf nonzero, NEGCNT will be computed.
outnegcntIf wantnc is nonzero, the number of pivots < pivmin in the matrix factorization L D L^T; otherwise -1.
outztzThe square of the 2-norm of Z.
outmingmaThe reciprocal of the largest (in magnitude) diagonal element of the inverse of L D L^T - sigma I.
inoutrThe twist index (0-based). On input, if r < 0, r is set to the index where (L D L^T - sigma I)^{-1} is largest in magnitude. If 0 <= r < n, r is unchanged. On output, contains the twist index used to compute Z.
outisuppzInteger array, dimension (2). The support of the vector Z (0-based indices). Z is nonzero only in elements isuppz[0] through isuppz[1].
outnrminv1/sqrt(ztz).
outresidThe residual of the FP vector: |mingma|/sqrt(ztz).
outrqcorrThe Rayleigh Quotient correction to lambda.
outworkDouble precision array, dimension (4*n).
void zlar1v(
const INT n,
const INT b1,
const INT bn,
const f64 lambda,
const f64* restrict D,
const f64* restrict L,
const f64* restrict LD,
const f64* restrict LLD,
const f64 pivmin,
const f64 gaptol,
c128* restrict Z,
const INT wantnc,
INT* negcnt,
f64* ztz,
f64* mingma,
INT* r,
INT* restrict isuppz,
f64* nrminv,
f64* resid,
f64* rqcorr,
f64* restrict work
);