fmpq_poly – polynomials over rational numbers¶
-
class
flint.
fmpq_poly
(p=None, q=None)¶ The fmpq_poly type represents dense univariate polynomials over the rational numbers. For efficiency reasons, an fmpq_poly is structurally an integer polynomial with a single common denominator.
>>> fmpq_poly([1,2,3],5) ** 3 27/125*x^6 + 54/125*x^5 + 63/125*x^4 + 44/125*x^3 + 21/125*x^2 + 6/125*x + 1/125 >>> ctx.pretty = False >>> fmpq_poly([1,2,3],5) ** 3 fmpq_poly([1, 6, 21, 44, 63, 54, 27], 125) >>> divmod(fmpq_poly([2,0,1,1,6]), fmpq_poly([3,5,7])) (fmpq_poly([38, -161, 294], 343), fmpq_poly([572, 293], 343)) >>> ctx.pretty = True
-
static
bernoulli_poly
(n)¶ Returns the Bernoulli polynomial \(B_n(x)\) as an fmpq_poly.
>>> fmpq_poly.bernoulli_poly(2) x^2 + (-1)*x + 1/6
-
coeffs
(self)¶
-
degree
(self) → long¶
-
denom
(self)¶
-
static
euler_poly
(n)¶ Returns the Euler polynomial \(E_n(x)\) as an fmpq_poly.
>>> fmpq_poly.euler_poly(3) x^3 + (-3/2)*x^2 + 1/4
-
factor
(self)¶ Factors self into irreducible polynomials. Returns (c, factors) where c is the leading coefficient and factors is a list of (poly, exp) pairs with all poly monic.
>>> fmpq_poly.legendre_p(5).factor() (63/8, [(x, 1), (x^4 + (-10/9)*x^2 + 5/21, 1)]) >>> (fmpq_poly([1,-1],10) ** 5 * fmpq_poly([1,2,3],7)).factor() (-3/700000, [(x^2 + 2/3*x + 1/3, 1), (x + (-1), 5)])
-
gcd
(self, other)¶ Returns the greatest common divisor of self and other.
>>> A = fmpq_poly([1,2,6],6); B = fmpq_poly([4,2,1],12) >>> (A * B).gcd(B) x^2 + 2*x + 4
-
static
legendre_p
(n)¶ Returns the Legendre polynomial \(P_n(x)\) as an fmpq_poly.
>>> fmpq_poly.legendre_p(3) 5/2*x^3 + (-3/2)*x
-
length
(self) → long¶
-
numer
(self)¶
-
p
¶ fmpq_poly.numer(self)
-
q
¶ fmpq_poly.denom(self)
-
repr
(self)¶
-
roots
(self, **kwargs)¶ Computes the complex roots of this polynomial. See
fmpz_poly.roots()
.>>> fmpq_poly([fmpq(2,3),1]).roots() [([-0.666666666666667 +/- 3.34e-16], 1)]
-
str
(self, bool ascending=False)¶ Convert to a human-readable string (generic implementation for all polynomial types).
If ascending is True, the monomials are output from low degree to high, otherwise from high to low.
-
static