10#ifndef EIGEN_COMPANION_H
11#define EIGEN_COMPANION_H
21#ifndef EIGEN_PARSED_BY_DOXYGEN
32template<
typename _Scalar,
int _Deg >
59 if( m_bl_diag.rows() >
col )
61 if( 0 <
row ){
return m_bl_diag[
col]; }
64 else{
return m_monic[
row]; }
68 template<
typename VectorType>
73 m_bl_diag.setOnes(
deg-1);
76 template<
typename VectorType>
78 setPolynomial(
poly ); }
88 << LeftBlockFirstRow::Zero(1,
deg_1),
89 BottomLeftBlock::Identity(
deg-1,
deg-1)*m_bl_diag.asDiagonal() ).finished()
133template<
typename _Scalar,
int _Deg >
187template<
typename _Scalar,
int _Deg >
214template<
typename _Scalar,
int _Deg >
237 m_bl_diag[0] *=
colB;
254 m_bl_diag[
i] *=
colB;
255 m_bl_diag[
i-1] *=
rowB;
262 const Index ebl = m_bl_diag.size()-1;
int i
Definition BiCGSTAB_step_by_step.cpp:9
#define EIGEN_STRONG_INLINE
Definition Macros.h:917
#define EIGEN_MAKE_ALIGNED_OPERATOR_NEW_IF_VECTORIZABLE_FIXED_SIZE(Scalar, Size)
Definition Memory.h:842
#define EIGEN_STATIC_ASSERT(CONDITION, MSG)
Definition StaticAssert.h:127
NumTraits< Scalar >::Real RealScalar
Definition bench_gemm.cpp:47
Definition Companion.h:34
_Scalar Scalar
Definition Companion.h:43
NumTraits< Scalar >::Real RealScalar
Definition Companion.h:44
DenseIndex Index
Definition Companion.h:54
Matrix< Scalar, Deg, 1 > RightColumn
Definition Companion.h:45
void balance()
Definition Companion.h:215
companion(const VectorType &poly)
Definition Companion.h:77
RightColumn m_monic
Definition Companion.h:127
Matrix< Scalar, _Deg, Deg_1 > LeftBlock
Definition Companion.h:50
EIGEN_STRONG_INLINE const _Scalar operator()(Index row, Index col) const
Definition Companion.h:57
void setPolynomial(const VectorType &poly)
Definition Companion.h:69
Matrix< Scalar, Deg_1, 1 > BottomLeftDiagonal
Definition Companion.h:47
bool balancedR(RealScalar colNorm, RealScalar rowNorm, bool &isBalanced, RealScalar &colB, RealScalar &rowB)
Definition Companion.h:189
DenseCompanionMatrixType denseMatrix() const
Definition Companion.h:81
Matrix< Scalar, Deg, Deg > DenseCompanionMatrixType
Definition Companion.h:49
BottomLeftDiagonal m_bl_diag
Definition Companion.h:128
Matrix< Scalar, Deg_1, Deg_1 > BottomLeftBlock
Definition Companion.h:51
bool balanced(RealScalar colNorm, RealScalar rowNorm, bool &isBalanced, RealScalar &colB, RealScalar &rowB)
Definition Companion.h:135
Matrix< Scalar, 1, Deg_1 > LeftBlockFirstRow
Definition Companion.h:52
#define abs(x)
Definition datatypes.h:17
RealScalar s
Definition level1_cplx_impl.h:126
EIGEN_DEVICE_FUNC bool isApprox(const Scalar &x, const Scalar &y, const typename NumTraits< Scalar >::Real &precision=NumTraits< Scalar >::dummy_precision())
Definition MathFunctions.h:1947
EIGEN_DEVICE_FUNC EIGEN_ALWAYS_INLINE bool() isfinite(const Eigen::bfloat16 &h)
Definition BFloat16.h:671
Namespace containing all symbols from the Eigen library.
Definition bench_norm.cpp:85
EIGEN_DEFAULT_DENSE_INDEX_TYPE DenseIndex
Definition Meta.h:66
const int Dynamic
Definition Constants.h:22
Definition BandTriangularSolver.h:13
Definition Companion.h:25
@ ret
Definition Companion.h:27
Definition ForwardDeclarations.h:17