SourcePro® API Reference Guide

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

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

#include <rw/lapack/bal.h>

Public Member Functions

 RWBalanceTransform ()
 
 RWBalanceTransform (const RWBalanceTransform &)
 
unsigned cols () const
 
unsigned highIndex () const
 
RWGenMat< TypeT > invTransform (const RWGenMat< TypeT > &x) const
 
RWMathVec< TypeT > invTransform (const RWMathVec< TypeT > &x) const
 
unsigned lowIndex () const
 
RWBalanceTransform< TypeT > & operator= (const RWBalanceTransform &)
 
unsigned rows () const
 
RWGenMat< TypeT > transform (const RWGenMat< TypeT > &x) const
 
RWMathVec< TypeT > transform (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 encapsulates these two transformations.

The class RWBalanceTransform 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>

Constructor & Destructor Documentation

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

Constructs an empty transformation.

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

Copies the 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>
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>
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>
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>
RWBalanceTransform<TypeT>& 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>
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.

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.

Copyright © 2021 Rogue Wave Software, Inc., a Perforce company. All Rights Reserved.