SourcePro® API Reference Guide

 
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 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 © 2023 Rogue Wave Software, Inc., a Perforce company. All Rights Reserved.