Eigen-unsupported  3.4.90 (git rev 67eeba6e720c5745abc77ae6c92ce0a44aa7b7ae)
Polynomials module

## Detailed Description

This module provides a QR based polynomial solver.

#include <unsupported/Eigen/Polynomials>

at the start of your source file.

## Classes

class  Eigen::PolynomialSolver< Scalar_, Deg_ >
A polynomial solver. More...

class  Eigen::PolynomialSolverBase< Scalar_, Deg_ >
Defined to be inherited by polynomial solvers: it provides convenient methods such as. More...

## Functions

template<typename Polynomial >
NumTraits< typename Polynomial::Scalar >::Real Eigen::cauchy_max_bound (const Polynomial &poly)

template<typename Polynomial >
NumTraits< typename Polynomial::Scalar >::Real Eigen::cauchy_min_bound (const Polynomial &poly)

template<typename Polynomials , typename T >
Eigen::poly_eval (const Polynomials &poly, const T &x)

template<typename Polynomials , typename T >
Eigen::poly_eval_horner (const Polynomials &poly, const T &x)

template<typename RootVector , typename Polynomial >
void Eigen::roots_to_monicPolynomial (const RootVector &rv, Polynomial &poly)

## ◆ cauchy_max_bound()

template<typename Polynomial >
 NumTraits::Real Eigen::cauchy_max_bound ( const Polynomial & poly )
inline
Returns
a maximum bound for the absolute value of any root of the polynomial.
Parameters
 [in] poly : the vector of coefficients of the polynomial ordered by degrees i.e. poly[i] is the coefficient of degree i of the polynomial e.g. $$1 + 3x^2$$ is stored as a vector $$[ 1, 0, 3 ]$$.
Precondition
the leading coefficient of the input polynomial poly must be non zero

## ◆ cauchy_min_bound()

template<typename Polynomial >
 NumTraits::Real Eigen::cauchy_min_bound ( const Polynomial & poly )
inline
Returns
a minimum bound for the absolute value of any non zero root of the polynomial.
Parameters
 [in] poly : the vector of coefficients of the polynomial ordered by degrees i.e. poly[i] is the coefficient of degree i of the polynomial e.g. $$1 + 3x^2$$ is stored as a vector $$[ 1, 0, 3 ]$$.

## ◆ poly_eval()

template<typename Polynomials , typename T >
 T Eigen::poly_eval ( const Polynomials & poly, const T & x )
inline
Returns
the evaluation of the polynomial at x using stabilized Horner algorithm.
Parameters
 [in] poly : the vector of coefficients of the polynomial ordered by degrees i.e. poly[i] is the coefficient of degree i of the polynomial e.g. $$1 + 3x^2$$ is stored as a vector $$[ 1, 0, 3 ]$$. [in] x : the value to evaluate the polynomial at.

## ◆ poly_eval_horner()

template<typename Polynomials , typename T >
 T Eigen::poly_eval_horner ( const Polynomials & poly, const T & x )
inline
Returns
the evaluation of the polynomial at x using Horner algorithm.
Parameters
 [in] poly : the vector of coefficients of the polynomial ordered by degrees i.e. poly[i] is the coefficient of degree i of the polynomial e.g. $$1 + 3x^2$$ is stored as a vector $$[ 1, 0, 3 ]$$. [in] x : the value to evaluate the polynomial at.
Note
for stability: $$|x| \le 1$$

## ◆ roots_to_monicPolynomial()

template<typename RootVector , typename Polynomial >
 void Eigen::roots_to_monicPolynomial ( const RootVector & rv, Polynomial & poly )

Given the roots of a polynomial compute the coefficients in the monomial basis of the monic polynomial with same roots and minimal degree. If RootVector is a vector of complexes, Polynomial should also be a vector of complexes.

Parameters
 [in] rv : a vector containing the roots of a polynomial. [out] poly : the vector of coefficients of the polynomial ordered by degrees i.e. poly[i] is the coefficient of degree i of the polynomial e.g. $$3 + x^2$$ is stored as a vector $$[ 3, 0, 1 ]$$.