module Algebra.Ring.Polynomial
( module Algebra.Ring.Polynomial.Monomial,
module Algebra.Ring.Polynomial.Class,
Polynomial,
transformMonomial,
castPolynomial, changeOrder, changeOrderProxy,
scastPolynomial, OrderedPolynomial(..),
allVars, substVar, homogenize, unhomogenize,
normalize, varX, getTerms, shiftR, orderedBy,
mapCoeff, reversal, padeApprox,
eval, evalUnivariate,
substUnivariate, minpolRecurrent,
IsOrder(..), PadPolyL(..), padLeftPoly
) where
import Algebra.Algorithms.Groebner
import Algebra.Internal
import Algebra.Ring.Polynomial.Class
import Algebra.Ring.Polynomial.Internal
import Algebra.Ring.Polynomial.Monomial
import AlgebraicPrelude
instance
(KnownNat n, Eq r, DecidableUnits r, DecidableZero r, Field r,
IsMonomialOrder n ord, ZeroProductSemiring r)
=> UFD (OrderedPolynomial r ord n)
instance
(KnownNat n, Eq r, DecidableUnits r, DecidableZero r, Field r,
IsMonomialOrder n ord, ZeroProductSemiring r)
=> GCDDomain (OrderedPolynomial r ord n) where
gcd = gcdPolynomial
lcm = lcmPolynomial