.. _polys-reference:

===========
Polynomials
===========

.. automodule:: diofant.polys

Computations with polynomials are at the core of computer algebra and
having a fast and robust polynomials manipulation module is a key for
building a powerful symbolic manipulation system. Here we document
a dedicated module for computing in polynomial algebras over
various coefficient domains.

There is a vast number of methods implemented, ranging from simple tools
like polynomial division, to advanced concepts including Gröbner bases
and multivariate factorization over algebraic number domains.

Basic polynomial manipulation functions
=======================================

.. automodule:: diofant.polys.polytools
    :members:

Extra polynomial manipulation functions
=======================================

.. automodule:: diofant.polys.polyfuncs
    :members:

Domain constructors
===================

.. automodule:: diofant.polys.constructor
    :members:

Algebraic number fields
=======================

.. automodule:: diofant.polys.numberfields
    :members:

Monomials encoded as tuples
===========================

.. automodule:: diofant.polys.monomials
    :members:

Orderings of monomials
======================

.. automodule:: diofant.polys.orderings
    :members:

Formal manipulation of roots of polynomials
===========================================

.. automodule:: diofant.polys.rootoftools
    :members:

Symbolic root-finding algorithms
================================

.. automodule:: diofant.polys.polyroots
    :members:

Special polynomials
===================

.. automodule:: diofant.polys.specialpolys
    :members:

Orthogonal polynomials
======================

.. automodule:: diofant.polys.orthopolys
    :members:

Manipulation of rational functions
==================================

.. automodule:: diofant.polys.rationaltools
    :members:

Partial fraction decomposition
==============================

.. automodule:: diofant.polys.partfrac
    :members:

Dispersion of Polynomials
=========================

.. automodule:: diofant.polys.dispersion
    :members:
