![]() |
|
#include <Companion.h>
Public Types | |
enum | { Deg = Deg_ , Deg_1 = decrement_if_fixed_size<Deg>::ret } |
typedef Scalar_ | Scalar |
typedef NumTraits< Scalar >::Real | RealScalar |
typedef Matrix< Scalar, Deg, 1 > | RightColumn |
typedef Matrix< Scalar, Deg_1, 1 > | BottomLeftDiagonal |
typedef Matrix< Scalar, Deg, Deg > | DenseCompanionMatrixType |
typedef Matrix< Scalar, Deg_, Deg_1 > | LeftBlock |
typedef Matrix< Scalar, Deg_1, Deg_1 > | BottomLeftBlock |
typedef Matrix< Scalar, 1, Deg_1 > | LeftBlockFirstRow |
typedef DenseIndex | Index |
Public Member Functions | |
EIGEN_STRONG_INLINE const Scalar_ | operator() (Index row, Index col) const |
template<typename VectorType > | |
void | setPolynomial (const VectorType &poly) |
template<typename VectorType > | |
companion (const VectorType &poly) | |
DenseCompanionMatrixType | denseMatrix () const |
void | balance () |
Protected Member Functions | |
bool | balanced (RealScalar colNorm, RealScalar rowNorm, bool &isBalanced, RealScalar &colB, RealScalar &rowB) |
bool | balancedR (RealScalar colNorm, RealScalar rowNorm, bool &isBalanced, RealScalar &colB, RealScalar &rowB) |
Protected Attributes | |
RightColumn | m_monic |
BottomLeftDiagonal | m_bl_diag |
typedef Matrix<Scalar, Deg_1, Deg_1> Eigen::internal::companion< Scalar_, Deg_ >::BottomLeftBlock |
typedef Matrix<Scalar, Deg_1, 1> Eigen::internal::companion< Scalar_, Deg_ >::BottomLeftDiagonal |
typedef Matrix<Scalar, Deg, Deg> Eigen::internal::companion< Scalar_, Deg_ >::DenseCompanionMatrixType |
typedef DenseIndex Eigen::internal::companion< Scalar_, Deg_ >::Index |
typedef Matrix<Scalar, Deg_, Deg_1> Eigen::internal::companion< Scalar_, Deg_ >::LeftBlock |
typedef Matrix<Scalar, 1, Deg_1> Eigen::internal::companion< Scalar_, Deg_ >::LeftBlockFirstRow |
typedef NumTraits<Scalar>::Real Eigen::internal::companion< Scalar_, Deg_ >::RealScalar |
typedef Matrix<Scalar, Deg, 1> Eigen::internal::companion< Scalar_, Deg_ >::RightColumn |
typedef Scalar_ Eigen::internal::companion< Scalar_, Deg_ >::Scalar |
|
inline |
References Eigen::internal::companion< Scalar_, Deg_ >::setPolynomial().
void Eigen::internal::companion< Scalar_, Deg_ >::balance |
Balancing algorithm from B. N. PARLETT and C. REINSCH (1969) "Balancing a matrix for calculation of eigenvalues and eigenvectors" adapted to the case of companion matrices. A matrix with non zero row and non zero column is balanced for a certain norm if the i-th row and the i-th column have same norm for all i.
References abs(), Eigen::Dynamic, EIGEN_STATIC_ASSERT, and i.
Referenced by Eigen::PolynomialSolver< Scalar_, Deg_ >::compute().
|
inlineprotected |
Helper function for the balancing algorithm.
References Eigen::numext::isfinite(), and s.
|
inlineprotected |
Helper function for the balancing algorithm.
Set the norm of the column and the row to the geometric mean of the row and column norm
References Eigen::internal::isApprox(), Eigen::numext::q, and sqrt().
|
inline |
References MergeRestartFiles::finished, Eigen::internal::companion< Scalar_, Deg_ >::m_bl_diag, Eigen::internal::companion< Scalar_, Deg_ >::m_monic, and oomph::PseudoSolidHelper::Zero.
Referenced by Eigen::PolynomialSolver< Scalar_, Deg_ >::compute().
|
inline |
References col(), Eigen::internal::companion< Scalar_, Deg_ >::m_bl_diag, Eigen::internal::companion< Scalar_, Deg_ >::m_monic, row(), and Eigen::PlainObjectBase< Derived >::rows().
|
inline |
References Eigen::internal::companion< Scalar_, Deg_ >::m_bl_diag, Eigen::internal::companion< Scalar_, Deg_ >::m_monic, and Eigen::PlainObjectBase< Derived >::setOnes().
Referenced by Eigen::internal::companion< Scalar_, Deg_ >::companion().
|
protected |
|
protected |