Safe Haskell | None |
---|---|
Language | Haskell2010 |
Synopsis
- newtype Polynomial k ord n = Polynomial {}
- class (CoeffRig (Coeff poly), KnownNat (Arity poly)) => IsPolynomial poly where
- class (IsMonomialOrder (MonOrder poly), IsPolynomial poly) => IsOrderedPolynomial poly where
- polytope2 :: IsOrderedPolynomial poly => poly -> [Point2D]
- (!*) :: Num k => k -> Polynomial k ord n -> Polynomial k ord n
Types
newtype Polynomial k ord n Source #
Polynomial requires just the type of the coefficient and the monomial ordering.
| Arity is given when defining variables with variable
function
Instances
Classes
class (CoeffRig (Coeff poly), KnownNat (Arity poly)) => IsPolynomial poly where Source #
Every polynomial must implement this class
arity :: poly -> SNat (Arity poly) Source #
toPolynomial :: (Mon (Arity poly), Coeff poly) -> poly Source #
fromMonomial :: Mon (Arity poly) -> poly Source #
Instances
(KnownNat n, IsMonomialOrder ord, CoeffRig k) => IsPolynomial (Polynomial k ord n) Source # | |
Defined in Polynomial.Prelude type Coeff (Polynomial k ord n) :: * Source # type Arity (Polynomial k ord n) :: Nat Source # arity :: Polynomial k ord n -> SNat (Arity (Polynomial k ord n)) Source # toPolynomial :: (Mon (Arity (Polynomial k ord n)), Coeff (Polynomial k ord n)) -> Polynomial k ord n Source # fromMonomial :: Mon (Arity (Polynomial k ord n)) -> Polynomial k ord n Source # variable :: Ordinal (Arity (Polynomial k ord n)) -> Polynomial k ord n Source # |
class (IsMonomialOrder (MonOrder poly), IsPolynomial poly) => IsOrderedPolynomial poly where Source #
terms :: poly -> Map (Monomial (MonOrder poly) (Arity poly)) (Coeff poly) Source #
leadingTerm :: poly -> (Coeff poly, Monomial (MonOrder poly) (Arity poly)) Source #
leadingMonomial :: poly -> Monomial (MonOrder poly) (Arity poly) Source #
leadingCoeff :: poly -> Coeff poly Source #
Instances
(KnownNat n, CoeffRig k, IsMonomialOrder ord) => IsOrderedPolynomial (Polynomial k ord n) Source # | |
Defined in Polynomial.Prelude type MonOrder (Polynomial k ord n) :: * Source # terms :: Polynomial k ord n -> Map (Monomial (MonOrder (Polynomial k ord n)) (Arity (Polynomial k ord n))) (Coeff (Polynomial k ord n)) Source # leadingTerm :: Polynomial k ord n -> (Coeff (Polynomial k ord n), Monomial (MonOrder (Polynomial k ord n)) (Arity (Polynomial k ord n))) Source # leadingMonomial :: Polynomial k ord n -> Monomial (MonOrder (Polynomial k ord n)) (Arity (Polynomial k ord n)) Source # leadingCoeff :: Polynomial k ord n -> Coeff (Polynomial k ord n) Source # |
Functions
polytope2 :: IsOrderedPolynomial poly => poly -> [Point2D] Source #
(!*) :: Num k => k -> Polynomial k ord n -> Polynomial k ord n Source #