Developer documentation

Solvers

The class which implements the functions to isolate or approximate the real roots of a univariate polynomial are of the form

template<class R, class M> struct solver;
Parameters
Ris the ring in which the computation is performed.
Mis the method used for solving.

Such a class provides a static solve function:

template<class Solutions, class Polynomial> static void
solver<R,M>::solve(Solutions& sol, const Polynomial& f)

where

  • Solutions is the type used to store the solutions, The solutions are appended at the end of sol using the operator<< .
  • Polynomial is the type of the input polynomial.

A general interface function solve is also available:

template <class Polynomial, class mth >
typename solver<typename Polynomial::Scalar,mth>::Solutions
solve(Polynomial& p, const mth& f);

The function solver<typename Polynomial::Scalar,mth>::solve is called and the result of type typename solver<typename Polynomial::Scalar,mth>::Solutions is returned.

Available solvers:
See also
solver.hpp
Home