PrevUpHomeNext
larre
Prototype

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 > );

Description

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.

Table 1.348. Dispatching of larre

Value type of VectorD

LAPACK routine

float

SLARRE

double

DLARRE


Definition

Defined in header boost/numeric/bindings/lapack/auxiliary/larre.hpp.

Parameters or Requirements on Types

Parameters

MatrixA

The definition of term 1

MatrixB

The definition of term 2

MatrixC

The definition of term 3.

Definitions may contain paragraphs.

Complexity
Example

#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

Notes
See Also

PrevUpHomeNext