{-# OPTIONS_GHC -Wall #-} ----------------------------------------------------------------------------- -- | -- Module : ToySolver.Data.Polynomial -- Copyright : (c) Masahiro Sakai 2012-2013 -- License : BSD-style -- -- Maintainer : masahiro.sakai@gmail.com -- Stability : provisional -- Portability : portable -- -- Polynomials -- -- References: -- -- * Monomial order -- -- * Polynomial class for Ruby -- -- * constructive-algebra package -- ----------------------------------------------------------------------------- module ToySolver.Data.Polynomial ( -- * Polynomial type Polynomial -- * Conversion , Var (..) , constant , terms , fromTerms , coeffMap , fromCoeffMap , fromTerm -- * Query , Degree (..) , Vars (..) , lt , lc , lm , coeff , lookupCoeff , isPrimitive -- * Operations , Factor (..) , SQFree (..) , ContPP (..) , deriv , integral , eval , subst , mapCoeff , toMonic , toUPolynomialOf , divModMP , reduce -- * Univariate polynomials , UPolynomial , X (..) , UTerm , UMonomial , div , mod , divMod , divides , gcd , lcm , exgcd , pdivMod , pdiv , pmod , gcd' , isRootOf , isSquareFree , nat -- * Term , Term , tdeg , tmult , tdivides , tdiv , tderiv , tintegral -- * Monic monomial , Monomial , mone , mfromIndices , mfromIndicesMap , mindices , mindicesMap , mmult , mpow , mdivides , mdiv , mderiv , mintegral , mlcm , mgcd , mcoprime -- * Monomial order , MonomialOrder , lex , revlex , grlex , grevlex -- * Pretty Printing , PrintOptions (..) , defaultPrintOptions , prettyPrint , PrettyCoeff (..) , PrettyVar (..) ) where import Prelude hiding (lex, div, mod, divMod, gcd, lcm) import ToySolver.Data.Polynomial.Base import ToySolver.Data.Polynomial.Factorization.FiniteField () import ToySolver.Data.Polynomial.Factorization.Integer () import ToySolver.Data.Polynomial.Factorization.Rational ()