Safe Haskell | None |
---|---|
Language | Haskell2010 |
Polynomial type optimized to univariate polynomial.
- data Unipol r
- naiveMult :: (DecidableZero r, Multiplicative r) => Unipol r -> Unipol r -> Unipol r
- karatsuba :: forall r. CoeffRing r => Unipol r -> Unipol r -> Unipol r
- divModUnipolByMult :: (Eq r, Field r) => Unipol r -> Unipol r -> (Unipol r, Unipol r)
- divModUnipol :: (CoeffRing r, Field r) => Unipol r -> Unipol r -> (Unipol r, Unipol r)
- mapCoeffUnipol :: DecidableZero b => (a -> b) -> Unipol a -> Unipol b
- liftMapUnipol :: (Module (Scalar k) r, Monoidal k, Unital r) => (Ordinal 1 -> r) -> Unipol k -> r
- module Algebra.Ring.Polynomial.Class
- module Algebra.Ring.Polynomial.Monomial
Documentation
Univariate polynomial.
It uses
as its internal representation;
so if you want to treat the power greater than IntMap
maxBound :: Int
,
please consider using other represntation.
naiveMult :: (DecidableZero r, Multiplicative r) => Unipol r -> Unipol r -> Unipol r Source #
Polynomial multiplication, naive version.
karatsuba :: forall r. CoeffRing r => Unipol r -> Unipol r -> Unipol r Source #
Polynomial multiplication using Karatsuba's method.
mapCoeffUnipol :: DecidableZero b => (a -> b) -> Unipol a -> Unipol b Source #