>
>#include <rw/dbal.h> // DoubleBalanceDecomp #include <rw/cbal.h> // DComplexBalanceDecomp DoubleBalanceDecomp bal(A); // A is a RWGenMat<double>
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}BalanceDecomp encapsulate the decomposition:
where B=PD, an amalgamation of the permutation and balance transformations. This decomposition is used internally by the nonsymmetric eigenvalue decomposition classes, including the Schur and Hessenberg decomposition classes.
>DoubleBalanceDecomp(); DComplexBalanceDecomp();
Constructs an empty decomposition.
DoubleBalanceDecomp(const RWGenMat<double>& A, RWBoolean permute=TRUE, const RWBoolean scale=TRUE); DComplexBalanceDecomp(const RWGenMat<DComplex>& A, RWBoolean permute=TRUE, const RWBoolean scale=TRUE);
Constructs a decomposition of the matrix A. The boolean parameters control whether permutation, scaling (balancing), both, or neither are done. The matrix must be square.
const DoubleBalanceTransform DoubleBalanceDecomp::B() const; const DComplexBalanceTransform DComplexBalanceDecomp::B() const;
Returns a representation of the balance transformation computed.
const RWGenMat<double> DoubleBalanceDecomp::C() const; const RWGenMat<DComplex> DComplexBalanceDecomp::C() const;
Returns the balanced matrix.
unsigned DoubleBalanceDecomp::cols() const; unsigned DComplexBalanceDecomp::cols() const;
Returns the number of columns in the decomposition.
unsigned DoubleBalanceDecomp::rows() const; unsigned DComplexBalanceDecomp::rows() const;
Returns the number of rows in the decomposition.
©Copyright 1999, Rogue Wave Software, Inc.
Send mail to report errors or comment on the documentation.