Rogue Wave banner
Previous fileTop of DocumentContentsIndex pageNext file
Linear Algebra Module Reference Guide
Rogue Wave web site:  Home Page  |  Main Documentation Page

RWTriDiagDecomp<T>

Module:  Linear Algebra   Group:  Symmetric Eigenvalue Decomposition classes


Does not inherit

Local Index

Members

Synopsis

#include <rw/lapack/td.h>

Description

The class RWTriDiagDecomp<T> encapsulates the tridiagonal decomposition of a symmetric matrix A:

where Q is orthogonal and T is tridiagonal and real, even in the complex case. This decomposition is often done as a precursor to computing eigenvalues, since the eigenvalues of T and A are the same, and those of T are easier to compute. This class is used internally by the symmetric eigenvalue classes.

The class RWTriDiagDecomp<T> is an abstract base class. Subclasses must implement the pure virtual function decompose. This separates the implementation of the storage of Q from the interface, so that band and dense decompositions can use different storage techniques. The Linear Algebra Module provides the derived classes RWDenseTriDiagDecomp<T> and RWBandTriDiagDecomp<T>.

Example

See specific subclasses for examples.

Public Member Functions

unsigned
cols() const;
const RWMathVec<float>
RWTriDiagDecomp<float>::diagonal() const;
const RWMathVec<double>
RWTriDiagDecomp<double>::diagonal() const;
const RWMathVec<double>
RWTriDiagDecomp<DComplex>::diagonal() const;
const RWMathVec<float>
RWTriDiagDecomp<float>::offDiagonal() const;
const RWMathVec<double>
RWTriDiagDecomp<double>::offDiagonal() const;
const RWMathVec<double>
RWTriDiagDecomp<DComplex>::offDiagonal() const;
unsigned
rows() const;
void
RWTriDiagDecomp<float>::set(const RWMathVec<float>&
diag, const RWMathVec<float>& offdiag); void RWTriDiagDecomp<double>::set(const RWMathVec<double>&
diag, const RWMathVec<double>& offdiag); void RWTriDiagDecomp<DComplex>::set(const
RWMathVec<double>& diag,
const RWMathVec<double>& offdiag);
virtual RWMathVec<float> 
RWTriDiagDecomp<float>::transform
(const RWMathVec<float>& x); virtual RWMathVec<double> RWTriDiagDecomp<double>::transform
(const RWMathVec<double>& x); virtual RWMathVec<DComplex> RWTriDiagDecomp<DComplex>::transform
(const RWMathVec<double>& x); virtual RWGenMat<float> RWTriDiagDecomp<float>::transform
(const RWGenMat<float>& x); virtual RWGenMat<double> RWTriDiagDecomp<double>::transform
(const RWGenMat<double>& x); virtual RWGenMat<DComplex> RWTriDiagDecomp<DComplex>::transform
(const RWGenMat<double>& x);


Previous fileTop of DocumentContentsIndex pageNext file

© Copyright Rogue Wave Software, Inc. All Rights Reserved.
Rogue Wave and SourcePro are registered trademarks of Rogue Wave Software, Inc. in the United States and other countries. All other trademarks are the property of their respective owners.
Contact Rogue Wave about documentation or support issues.