FMPQ_POLY Documentation


A FLINT-based implementation of the rational polynomial ring.


The module fmpq_poly provides functions for performing arithmetic on rational polynomials in $\mathbf{Q}[t]$, represented as quotients of integer polynomials of type fmpz_poly_t and denominators of type fmpz_t. These functions start with the prefix fmpq_poly_.

Rational polynomials are stored in objects of type fmpq_poly_t, which is an array of fmpq_poly_struct's of length one. This permits passing parameters of type fmpq_poly_t by reference. We also define the type fmpq_poly_ptr to be a pointer to fmpq_poly_struct's.

The representation of a rational polynomial as the quotient of an integer polynomial and an integer denominator can be made canonical by demanding the numerator and denominator to be coprime and the denominator to be positive. As the only special case, we represent the zero function as $0/1$. All arithmetic functions assume that the operands are in this canonical form, and canonicalize their result. If the numerator or denominator is modified individually, for example using the methods in the group Accessing numerator and denominator, it is the user's responsibility to canonicalize the rational function using the function fmpq_poly_canonicalize() if necessary.

All methods support aliasing of their inputs and outputs unless explicitly stated otherwise, subject to the following caveat. If different rational polynomials (as objects in memory, not necessarily in the mathematical sense) share some of the underlying integer polynomials or integers, the behaviour is undefined.

Version history

Generated on Wed Dec 8 21:13:35 2010 for FMPQ_POLY by  doxygen 1.6.3