table of contents
DLANEG(1) | LAPACK auxiliary routine (version 3.2) | DLANEG(1) |
NAME¶
DLANEG - computes the Sturm count, the number of negative pivots encountered while factoring tridiagonal T - sigma I = L D L^T
SYNOPSIS¶
- FUNCTION DLANEG(
- N, D, LLD, SIGMA, PIVMIN, R )
IMPLICIT NONE INTEGER DLANEG INTEGER N, R DOUBLE PRECISION PIVMIN, SIGMA DOUBLE PRECISION D( * ), LLD( * )
PURPOSE¶
DLANEG computes the Sturm count, the number of negative pivots
encountered while factoring tridiagonal T - sigma I = L D L^T. This
implementation works directly on the factors without forming the tridiagonal
matrix T. The Sturm count is also the number of eigenvalues of T less than
sigma.
This routine is called from DLARRB.
The current routine does not use the PIVMIN parameter but rather requires
IEEE-754 propagation of Infinities and NaNs. This routine also has no input
range restrictions but does require default exception handling such that x/0
produces Inf when x is non-zero, and Inf/Inf produces NaN. For more
information, see:
Marques, Riedy, and Voemel, "Benefits of IEEE-754 Features in
Modern Symmetric Tridiagonal Eigensolvers," SIAM Journal on
Scientific Computing, v28, n5, 2006. DOI 10.1137/050641624
(Tech report version in LAWN 172 with the same title.)
ARGUMENTS¶
- N (input) INTEGER
- The order of the matrix.
- D (input) DOUBLE PRECISION array, dimension (N)
- The N diagonal elements of the diagonal matrix D.
- LLD (input) DOUBLE PRECISION array, dimension (N-1)
- The (N-1) elements L(i)*L(i)*D(i).
- SIGMA (input) DOUBLE PRECISION
- Shift amount in T - sigma I = L D L^T.
- PIVMIN (input) DOUBLE PRECISION
- The minimum pivot in the Sturm sequence. May be used when zero pivots are encountered on non-IEEE-754 architectures.
- R (input) INTEGER
- The twist index for the twisted factorization that is used for the negcount.
FURTHER DETAILS¶
Based on contributions by
Osni Marques, LBNL/NERSC, USA
Christof Voemel, University of California, Berkeley, USA
Jason Riedy, University of California, Berkeley, USA
November 2008 | LAPACK auxiliary routine (version 3.2) |