There is one prototype of larre
available, please see below.
larre( const char range, const int_t n, Scalar >, Scalar >, const int_t il, const int_t iu, VectorD& d, VectorE& e, VectorE2& e2, const Scalar >, const Scalar >, const Scalar >, int_t& nsplit, VectorISPLIT& isplit, int_t& m, VectorW& w, VectorWERR& werr, VectorWGAP& wgap, VectorIBLOCK& iblock, VectorINDEXW& indexw, VectorGERS& gers, Scalar > );
larre
(short for $FRIENDLY_NAME)
provides a C++ interface to LAPACK routines SLARRE and DLARRE. To find
the desired eigenvalues of a given real symmetric tridiagonal matrix
T, larre
sets any "small"
off-diagonal elements to zero, and for each unreduced block T_i, it finds
(a) a suitable shift at one end of the block's spectrum, (b) the base
representation, T_i - sigma_i I = L_i D_i L_i^T, and (c) eigenvalues
of each L_i D_i L_i^T. The representations and eigenvalues found are
then used by DSTEMR to compute the eigenvectors of T. The accuracy varies
depending on whether bisection is used to find a few eigenvalues or the
dqds algorithm (subroutine DLASQ2) to conpute all and then discard any
unwanted one. As an added benefit, larre
also outputs the n Gerschgorin intervals for the matrices L_i D_i L_i^T.
The selection of the LAPACK routine is done during compile-time, and
is determined by the type of values contained in type VectorD
.
The type of values is obtained through the value_type
meta-function typename value_type<VectorD>::type
. The dispatching table below illustrates
to which specific routine the code path will be generated.
Defined in header boost/numeric/bindings/lapack/auxiliary/larre.hpp
.
Parameters
The definition of term 1
The definition of term 2
The definition of term 3.
Definitions may contain paragraphs.
#include <boost/numeric/bindings/lapack/auxiliary/larre.hpp> using namespace boost::numeric::bindings; lapack::larre( x, y, z );
this will output
[5] 0 1 2 3 4 5