Polynomial Compilers

AUTHORS:

  • Tom Boothby, initial design & implementation

  • Robert Bradshaw, bug fixes / suggested & assisted with significant design improvements

class sage.rings.polynomial.polynomial_compiled.CompiledPolynomialFunction

Bases: object

Builds a reasonably optimized directed acyclic graph representation for a given polynomial. A CompiledPolynomialFunction is callable from python, though it is a little faster to call the eval function from pyrex.

This class is not intended to be called by a user, rather, it is intended to improve the performance of immutable polynomial objects.

Todo

  • Recursive calling

  • Faster casting of coefficients / argument

  • Multivariate polynomials

  • Cython implementation of Pippenger’s Algorithm that doesn’t depend heavily upon dicts.

  • Computation of parameter sequence suggested by Pippenger

  • Univariate exponentiation can use Brauer’s method to improve extremely sparse polynomials of very high degree

class sage.rings.polynomial.polynomial_compiled.abc_pd

Bases: sage.rings.polynomial.polynomial_compiled.binary_pd

class sage.rings.polynomial.polynomial_compiled.add_pd

Bases: sage.rings.polynomial.polynomial_compiled.binary_pd

class sage.rings.polynomial.polynomial_compiled.binary_pd

Bases: sage.rings.polynomial.polynomial_compiled.generic_pd

class sage.rings.polynomial.polynomial_compiled.coeff_pd

Bases: sage.rings.polynomial.polynomial_compiled.generic_pd

class sage.rings.polynomial.polynomial_compiled.dummy_pd

Bases: sage.rings.polynomial.polynomial_compiled.generic_pd

class sage.rings.polynomial.polynomial_compiled.generic_pd

Bases: object

class sage.rings.polynomial.polynomial_compiled.mul_pd

Bases: sage.rings.polynomial.polynomial_compiled.binary_pd

class sage.rings.polynomial.polynomial_compiled.pow_pd

Bases: sage.rings.polynomial.polynomial_compiled.unary_pd

class sage.rings.polynomial.polynomial_compiled.sqr_pd

Bases: sage.rings.polynomial.polynomial_compiled.unary_pd

class sage.rings.polynomial.polynomial_compiled.unary_pd

Bases: sage.rings.polynomial.polynomial_compiled.generic_pd

class sage.rings.polynomial.polynomial_compiled.univar_pd

Bases: sage.rings.polynomial.polynomial_compiled.generic_pd

class sage.rings.polynomial.polynomial_compiled.var_pd

Bases: sage.rings.polynomial.polynomial_compiled.generic_pd