Public Types | Public Member Functions | Protected Attributes
Eigen::PolynomialSolver< _Scalar, _Deg > Class Template Reference

A polynomial solver. More...

#include <PolynomialSolver.h>

Inheritance diagram for Eigen::PolynomialSolver< _Scalar, _Deg >:
Inheritance graph
[legend]

List of all members.

Public Types

typedef Matrix< Scalar, _Deg,
_Deg > 
CompanionMatrixType
typedef EigenSolver
< CompanionMatrixType
EigenSolverType
typedef PolynomialSolverBase
< _Scalar, _Deg > 
PS_Base

Public Member Functions

template<typename OtherPolynomial >
void compute (const OtherPolynomial &poly)
template<typename OtherPolynomial >
 PolynomialSolver (const OtherPolynomial &poly)
 PolynomialSolver ()

Protected Attributes

EigenSolverType m_eigenSolver

Detailed Description

template<typename _Scalar, int _Deg>
class Eigen::PolynomialSolver< _Scalar, _Deg >

A polynomial solver.

Computes the complex roots of a real polynomial.

Parameters:
_Scalarthe scalar type, i.e., the type of the polynomial coefficients
_Degthe degree of the polynomial, can be a compile time value or Dynamic. Notice that the number of polynomial coefficients is _Deg+1.

This class implements a polynomial solver and provides convenient methods such as

WARNING: this polynomial solver is experimental, part of the unsuported Eigen modules.

Currently a QR algorithm is used to compute the eigenvalues of the companion matrix of the polynomial to compute its roots. This supposes that the complex moduli of the roots are all distinct: e.g. there should be no multiple roots or conjugate roots for instance. With 32bit (float) floating types this problem shows up frequently. However, almost always, correct accuracy is reached even in these cases for 64bit (double) floating types and small polynomial degree (<20).

Definition at line 331 of file PolynomialSolver.h.


Member Typedef Documentation

template<typename _Scalar , int _Deg>
typedef Matrix<Scalar,_Deg,_Deg> Eigen::PolynomialSolver< _Scalar, _Deg >::CompanionMatrixType

Definition at line 339 of file PolynomialSolver.h.

template<typename _Scalar , int _Deg>
typedef EigenSolver<CompanionMatrixType> Eigen::PolynomialSolver< _Scalar, _Deg >::EigenSolverType

Definition at line 340 of file PolynomialSolver.h.

template<typename _Scalar , int _Deg>
typedef PolynomialSolverBase<_Scalar,_Deg> Eigen::PolynomialSolver< _Scalar, _Deg >::PS_Base

Definition at line 336 of file PolynomialSolver.h.


Constructor & Destructor Documentation

template<typename _Scalar , int _Deg>
template<typename OtherPolynomial >
Eigen::PolynomialSolver< _Scalar, _Deg >::PolynomialSolver ( const OtherPolynomial &  poly) [inline]

Definition at line 356 of file PolynomialSolver.h.

template<typename _Scalar , int _Deg>
Eigen::PolynomialSolver< _Scalar, _Deg >::PolynomialSolver ( ) [inline]

Definition at line 359 of file PolynomialSolver.h.


Member Function Documentation

template<typename _Scalar , int _Deg>
template<typename OtherPolynomial >
void Eigen::PolynomialSolver< _Scalar, _Deg >::compute ( const OtherPolynomial &  poly) [inline]

Computes the complex roots of a new polynomial.

Definition at line 345 of file PolynomialSolver.h.


Member Data Documentation

template<typename _Scalar , int _Deg>
EigenSolverType Eigen::PolynomialSolver< _Scalar, _Deg >::m_eigenSolver [protected]

Definition at line 363 of file PolynomialSolver.h.


The documentation for this class was generated from the following file:


acado
Author(s): Milan Vukov, Rien Quirynen
autogenerated on Sat Jun 8 2019 19:40:51