Module: Linear Algebra Group: Decomposition Classes
Does not inherit
#include <rw/lapack/bal.h> RWBalanceDecomp<double> 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 class RWBalanceDecomp<T> encapsulates 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.
RWBalanceDecomp();
Constructs an empty decomposition.
RWBalanceDecomp(const RWGenMat<T>& A, bool permute=true, const bool 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 RWBalanceTransform<T> B() const;
Returns a representation of the balance transformation computed.
const RWGenMat<T> C() const;
Returns the balanced matrix.
unsigned cols() const;
Returns the number of columns in the decomposition.
unsigned rows() const;
Returns the number of rows in the decomposition.
© 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.