SLANEG(3) sigma I = L D L^T

SYNOPSIS

FUNCTION SLANEG(
N, D, LLD, SIGMA, PIVMIN, R )

    
IMPLICIT NONE

    
INTEGER SLANEG

    
INTEGER N, R

    
REAL PIVMIN, SIGMA

    
REAL D( * ), LLD( * )

PURPOSE

SLANEG 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 SLARRB.
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) REAL array, dimension (N)
The N diagonal elements of the diagonal matrix D.
LLD (input) REAL array, dimension (N-1)
The (N-1) elements L(i)*L(i)*D(i).
SIGMA (input) REAL
Shift amount in T - sigma I = L D L^T.
PIVMIN (input) REAL
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