rwlogo
SourcePro C++ 12.0

SourcePro® C++ API Reference Guide



   SourcePro C++
Documentation Home

RWBalanceTransform< TypeT > Class Template Reference
[Decomposition]

Encapsulates the permutation and balance transformations on a nonsymmetric matrix before computing its eigenvalues. More...

#include <rw/lapack/bal.h>

List of all members.

Public Member Functions

 RWBalanceTransform ()
void operator= (const RWBalanceTransform &)
unsigned cols () const
unsigned rows () const
unsigned lowIndex () const
unsigned highIndex () const
RWGenMat< TypeT > transform (const RWGenMat< TypeT > &x) const
RWGenMat< TypeT > invTransform (const RWGenMat< TypeT > &x) const
RWMathVec< TypeT > transform (const RWMathVec< TypeT > &x) const
RWMathVec< TypeT > invTransform (const RWMathVec< TypeT > &x) const

Detailed Description

template<class TypeT>
class RWBalanceTransform< TypeT >

A permutation and balance transformation is often performed on a nonsymmetric matrix before computing its eigenvalues. The permutation attempts to break the matrix into three independent blocks such that the first and last block are triangular, and the balance transformation is a diagonal scaling transformation that attempts to make the row and column norms close to each other. The class RWBalanceTransform<T> encapsulates these two transformations.

The class RWBalanceTransform<T> is not often required explicitly; most often it is used implicitly by the nonsymmetric eigenvalue decompositions and servers. If you do need to use this class explicitly, it is usually best to construct an object and extract the transform from the object.

Synopsis

 #include <rw/lapack/bal.h>

 RWBalanceTransform<double> dtrans;

Constructor & Destructor Documentation

template<class TypeT>
RWBalanceTransform< TypeT >::RWBalanceTransform (  ) 

Constructs an empty transformation.


Member Function Documentation

template<class TypeT>
unsigned RWBalanceTransform< TypeT >::cols (  )  const [inline]

Returns the number of columns in the transformation matrix.

template<class TypeT>
unsigned RWBalanceTransform< TypeT >::highIndex (  )  const [inline]

If a permutation breaks the matrix into three independent blocks, this function returns the index where the middle block ends. The part of the matrix below this block is triangular, so its eigenvalues need not be computed.

template<class TypeT>
RWMathVec<TypeT> RWBalanceTransform< TypeT >::invTransform ( const RWMathVec< TypeT > &  x  )  const

Computes the inner product of the inverse transpose of the transform and x. This is typically used to transform left eigenvectors.

template<class TypeT>
RWGenMat<TypeT> RWBalanceTransform< TypeT >::invTransform ( const RWGenMat< TypeT > &  x  )  const

Computes the inner product of the inverse transpose of the transform and x. This is typically used to transform left eigenvectors.

template<class TypeT>
unsigned RWBalanceTransform< TypeT >::lowIndex (  )  const [inline]

If a permutation breaks the matrix into three independent blocks, this function returns the index where the middle block begins. The part of the matrix above this block is triangular, so its eigenvalues need not be computed.

template<class TypeT>
void RWBalanceTransform< TypeT >::operator= ( const RWBalanceTransform< TypeT > &   ) 

Initializes the transformation.

template<class TypeT>
unsigned RWBalanceTransform< TypeT >::rows (  )  const [inline]

Returns the number of rows in the transformation matrix.

template<class TypeT>
RWMathVec<TypeT> RWBalanceTransform< TypeT >::transform ( const RWMathVec< TypeT > &  x  )  const

Computes the inner product of the transform and x. This is typically used to transform right eigenvectors.

template<class TypeT>
RWGenMat<TypeT> RWBalanceTransform< TypeT >::transform ( const RWGenMat< TypeT > &  x  )  const

Computes the inner product of the transform and x. This is typically used to transform right eigenvectors.

 All Classes Functions Variables Typedefs Enumerations Enumerator Friends

© 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.