>
>#include <rw/dbal.h> // DoubleBalanceTransform #include <rw/cbal.h> // DComplexBalanceTransform DoubleBalanceTransform dtrans;
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 classes {TYPE}BalanceTransform encapsulate these two transformations.
The classes {TYPE}BalanceTransform are not often required explicitly; most often they are used implicitly by the nonsymmetric eigenvalue decompositions and servers. If you do need to use one of these classes explicitly, it is usually best to construct an object and extract the transform from the object.
>DoubleBalanceTransform(); DComplexBalanceTransform();
Constructs an empty transformation.
unsigned DoubleBalanceTransform::cols() const; unsigned DComplexBalanceTransform::cols() const;
Returns the number of columns in the transformation matrix.
unsigned DoubleBalanceTransform::highIndex() const; unsigned DComplexBalanceTransform::highIndex() const;
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.
RWGenMat<double> DoubleBalanceTransform::invTransform
(const RWGenMat<double>& x); RWMathVec<double> DoubleBalanceTransform::invTransform
(const RWMathVec<double>& x); RWGenMat<DComplex> DComplexBalanceTransform::invTransform
(const RWGenMat<DComplex>& x); RWMathVec<DComplex> DComplexBalanceTransform::invTransform
(const RWMathVec<DComplex>& x);
Computes the inner product of the inverse transpose of the transform and x. This is typically used to transform left eigenvectors.
unsigned DoubleBalanceTransform::lowIndex() const; unsigned DComplexBalanceTransform::lowIndex() const;
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.
unsigned DoubleBalanceTransform::rows() const; unsigned DComplexBalanceTransform::rows() const;
Returns the number of rows in the transformation matrix.
RWGenMat<double> DoubleBalanceTransform::transform(const RWGenMat<double>& x); RWMathVec<double> DoubleBalanceTransform::transform(const RWMathVec<double>& x); RWGenMat<DComplex> DComplexBalanceTransform::transform
(const RWGenMat<DComplex>& x); RWMathVec<DComplex> DComplexBalanceTransform::transform
(const RWMathVec<DComplex>& x);
Computes the inner product of the transform and x. This is typically used to transform right eigenvectors.
void DoubleBalanceTransform::operator=
(const DoubleBalanceTransform&); void DComplexBalanceTransform::operator=
(const DComplexBalanceTransform&);
Initializes the transformation.
©Copyright 1999, Rogue Wave Software, Inc.
Send mail to report errors or comment on the documentation.