SourcePro® C++ API Reference Guide

Product Documentation:
   SourcePro C++
Documentation Home
List of all members | Public Member Functions
RWBandTriDiagDecomp< TypeT > Class Template Reference

Encapsulates a symmetric tridiagonal decomposition of a symmetric banded matrix. More...

#include <rw/lapack/td.h>

Inheritance diagram for RWBandTriDiagDecomp< TypeT >:
RWTriDiagDecomp< TypeT >

Public Member Functions

 RWBandTriDiagDecomp (const typename rw_linear_algebra_traits< TypeT >::banded_hermitian_type &A, bool keepQ=true)
 
virtual RWGenMat< TypeT > transform (const RWGenMat< rt > &x) const
 
virtual RWMathVec< TypeT > transform (const RWMathVec< rt > &x) const
 
- Public Member Functions inherited from RWTriDiagDecomp< TypeT >
unsigned cols () const
 
const RWMathVec< rtdiagonal () const
 
const RWMathVec< rtoffDiagonal () const
 
unsigned rows () const
 
void set (const RWMathVec< rt > &diag_, const RWMathVec< rt > &offdiag_)
 

Additional Inherited Members

- Public Types inherited from RWTriDiagDecomp< TypeT >
typedef rw_numeric_traits< TypeT >::norm_type rt
 

Detailed Description

template<class TypeT>
class RWBandTriDiagDecomp< TypeT >

The class RWBandTriDiagDecomp<T> encapsulates a symmetric tridiagonal decomposition of a symmetric banded matrix A:

\( A = QTQ^\prime \)

where Q is orthogonal and T is real tridiagonal symmetric. This class is used internally by the symmetric eigenvalue classes.

Synopsis
#include <rw/lapack/td.h>
RWBandTriDiagDecomp<double>(A); // A is a DoubleSymMat
Example
#include <rw/lapack/sbndmat.h>
#include <rw/lapack/td.h>
#include <iostream>
int main()
{
std::cin >> A;
RWSymBandTriDiagDecomp<double> decomp(A);
std::cout << "T's diagonal is" << decomp.diagonal() << std::endl;
std::cout << "T's off diagonal is " << decomp.offDiagonal()
<< std::endl;
return 0;
}

Constructor & Destructor Documentation

template<class TypeT >
RWBandTriDiagDecomp< TypeT >::RWBandTriDiagDecomp ( const typename rw_linear_algebra_traits< TypeT >::banded_hermitian_type &  A,
bool  keepQ = true 
)

Constructs a tridiagonal decomposition of A. By setting the optional boolean parameter keepQ to false, the data necessary to transform via Q is not stored. This can save substantial storage costs, but an exception is thrown if you attempt to use the member function transform.

Member Function Documentation

template<class TypeT >
virtual RWGenMat<TypeT> RWBandTriDiagDecomp< TypeT >::transform ( const RWGenMat< rt > &  ) const
virtual

Transforms the vector from tridiagonal decomposition space back to the original matrix space. This amounts to multiplying it by the matrix Q.

Implements RWTriDiagDecomp< TypeT >.

template<class TypeT >
virtual RWMathVec<TypeT> RWBandTriDiagDecomp< TypeT >::transform ( const RWMathVec< rt > &  ) const
virtual

Transforms the vector from tridiagonal decomposition space back to the original matrix space. This amounts to multiplying it by the matrix Q.

Reimplemented from RWTriDiagDecomp< TypeT >.

Copyright © 2015 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.
Provide feedback to Rogue Wave about its documentation.