#include <RealQZ.h>
Public Types | |
typedef _MatrixType | MatrixType |
typedef MatrixType::Scalar | Scalar |
typedef std::complex< typename NumTraits< Scalar >::Real > | ComplexScalar |
typedef MatrixType::Index | Index |
typedef Matrix< ComplexScalar, ColsAtCompileTime, 1, Options &~RowMajor, MaxColsAtCompileTime, 1 > | EigenvalueType |
typedef Matrix< Scalar, ColsAtCompileTime, 1, Options &~RowMajor, MaxColsAtCompileTime, 1 > | ColumnVectorType |
RowsAtCompileTime = MatrixType::RowsAtCompileTime | |
ColsAtCompileTime = MatrixType::ColsAtCompileTime | |
Options = MatrixType::Options | |
MaxRowsAtCompileTime = MatrixType::MaxRowsAtCompileTime | |
MaxColsAtCompileTime = MatrixType::MaxColsAtCompileTime | |
enum | { RowsAtCompileTime = MatrixType::RowsAtCompileTime, ColsAtCompileTime = MatrixType::ColsAtCompileTime, Options = MatrixType::Options, MaxRowsAtCompileTime = MatrixType::MaxRowsAtCompileTime, MaxColsAtCompileTime = MatrixType::MaxColsAtCompileTime } |
Public Member Functions | |
RealQZ (Index size=RowsAtCompileTime==Dynamic?1:RowsAtCompileTime) | |
Default constructor. | |
RealQZ (const MatrixType &A, const MatrixType &B, bool computeQZ=true) | |
Constructor; computes real QZ decomposition of given matrices. | |
const MatrixType & | matrixQ () const |
Returns matrix Q in the QZ decomposition. | |
const MatrixType & | matrixZ () const |
Returns matrix Z in the QZ decomposition. | |
const MatrixType & | matrixS () const |
Returns matrix S in the QZ decomposition. | |
const MatrixType & | matrixT () const |
Returns matrix S in the QZ decomposition. | |
RealQZ & | compute (const MatrixType &A, const MatrixType &B, bool computeQZ=true) |
Computes QZ decomposition of given matrix. | |
ComputationInfo | info () const |
Reports whether previous computation was successful. | |
Index | iterations () const |
Returns number of performed QR-like iterations. | |
RealQZ & | setMaxIterations (Index maxIters) |
_MatrixType the type of the matrix of which we are computing the real QZ decomposition; this is expected to be an instantiation of the Matrix class template.
Given a real square matrices A and B, this class computes the real QZ decomposition: , where Q and Z are real orthogonal matrixes, T is upper-triangular matrix, and S is upper quasi-triangular matrix. An orthogonal matrix is a matrix whose inverse is equal to its transpose, . A quasi-triangular matrix is a block-triangular matrix whose diagonal consists of 1-by-1 blocks and 2-by-2 blocks where further reduction is impossible due to complex eigenvalues.
The eigenvalues of the pencil can be obtained from 1x1 and 2x2 blocks on the diagonals of S and T.
Call the function compute() to compute the real QZ decomposition of a given pair of matrices. Alternatively, you can use the RealQZ(const MatrixType& B, const MatrixType& B, bool computeQZ) constructor which computes the real QZ decomposition at construction time. Once the decomposition is computed, you can use the matrixS(), matrixT(), matrixQ() and matrixZ() functions to retrieve the matrices S, T, Q and Z in the decomposition. If computeQZ==false, some time is saved by not computing matrices Q and Z.
Example:
Definition at line 57 of file RealQZ.h.
typedef Matrix<Scalar, ColsAtCompileTime, 1, Options & ~RowMajor, MaxColsAtCompileTime, 1> Eigen::RealQZ< _MatrixType >::ColumnVectorType |
typedef std::complex<typename NumTraits<Scalar>::Real> Eigen::RealQZ< _MatrixType >::ComplexScalar |
typedef Matrix<ComplexScalar, ColsAtCompileTime, 1, Options & ~RowMajor, MaxColsAtCompileTime, 1> Eigen::RealQZ< _MatrixType >::EigenvalueType |
typedef MatrixType::Index Eigen::RealQZ< _MatrixType >::Index |
typedef _MatrixType Eigen::RealQZ< _MatrixType >::MatrixType |
typedef MatrixType::Scalar Eigen::RealQZ< _MatrixType >::Scalar |
anonymous enum |
Eigen::RealQZ< _MatrixType >::RealQZ | ( | Index | size = RowsAtCompileTime==Dynamic ? 1 : RowsAtCompileTime |
) | [inline] |
Default constructor.
[in] | size | Positive integer, size of the matrix whose QZ decomposition will be computed. |
size
parameter is only used as a hint. It is not an error to give a wrong size
, but it may impair performance.
Eigen::RealQZ< _MatrixType >::RealQZ | ( | const MatrixType & | A, | |
const MatrixType & | B, | |||
bool | computeQZ = true | |||
) | [inline] |
Constructor; computes real QZ decomposition of given matrices.
This constructor calls compute() to compute the QZ decomposition.
Definition at line 104 of file RealQZ.h.
References Eigen::RealQZ< _MatrixType >::compute().
RealQZ< MatrixType > & Eigen::RealQZ< MatrixType >::compute | ( | const MatrixType & | A, | |
const MatrixType & | B, | |||
bool | computeQZ = true | |||
) |
Computes QZ decomposition of given matrix.
*this
Definition at line 557 of file RealQZ.h.
References eigen_assert, Eigen::NoConvergence, and Eigen::Success.
Referenced by Eigen::RealQZ< _MatrixType >::RealQZ().
ComputationInfo Eigen::RealQZ< _MatrixType >::info | ( | ) | const [inline] |
Reports whether previous computation was successful.
Success
if computation was succesful, NoConvergence
otherwise. Definition at line 166 of file RealQZ.h.
References eigen_assert.
Index Eigen::RealQZ< _MatrixType >::iterations | ( | ) | const [inline] |
Returns number of performed QR-like iterations.
Definition at line 174 of file RealQZ.h.
References eigen_assert.
const MatrixType& Eigen::RealQZ< _MatrixType >::matrixQ | ( | void | ) | const [inline] |
Returns matrix Q in the QZ decomposition.
Definition at line 119 of file RealQZ.h.
References eigen_assert.
const MatrixType& Eigen::RealQZ< _MatrixType >::matrixS | ( | ) | const [inline] |
Returns matrix S in the QZ decomposition.
Definition at line 139 of file RealQZ.h.
References eigen_assert.
const MatrixType& Eigen::RealQZ< _MatrixType >::matrixT | ( | ) | const [inline] |
Returns matrix S in the QZ decomposition.
Definition at line 148 of file RealQZ.h.
References eigen_assert.
const MatrixType& Eigen::RealQZ< _MatrixType >::matrixZ | ( | ) | const [inline] |
Returns matrix Z in the QZ decomposition.
Definition at line 129 of file RealQZ.h.
References eigen_assert.
RealQZ& Eigen::RealQZ< _MatrixType >::setMaxIterations | ( | Index | maxIters | ) | [inline] |