Safe Haskell | None |
---|---|
Language | Haskell2010 |
Multivariate monomials where the set of variables is given by the inhabitants of a type
Synopsis
- newtype Monom v = Monom (Map v Int)
- unMonom :: Monom v -> Map v Int
- normalizeMonom :: Ord v => Monom v -> Monom v
- isNormalMonom :: Monom v -> Bool
- monomToList :: Ord v => Monom v -> [(v, Int)]
- monomFromList :: Ord v => [(v, Int)] -> Monom v
- mapMonom :: (Ord v, Ord w) => (v -> w) -> Monom v -> Monom w
- emptyMonom :: Monom v
- isEmptyMonom :: Monom v -> Bool
- mulMonom :: Ord v => Monom v -> Monom v -> Monom v
- divMonom :: Ord v => Monom v -> Monom v -> Maybe (Monom v)
- prodMonoms :: (Foldable f, Ord v) => f (Monom v) -> Monom v
- powMonom :: Ord v => Monom v -> Int -> Monom v
- varMonom :: Ord v => v -> Monom v
- singletonMonom :: Ord v => v -> Int -> Monom v
- maxDegMonom :: Monom v -> Int
- totalDegMonom :: Monom v -> Int
- evalMonom :: (Num c, Ord v) => (v -> c) -> Monom v -> c
- termSubsMonom :: (Num c, Ord v) => (v -> Maybe c) -> (Monom v, c) -> (Monom v, c)
- diffMonom :: (Ord v, Num c) => v -> Int -> Monom v -> Maybe (Monom v, c)
Monomials
A monomial over the set of variables represented by the inhabitants
of the type v
.
The invariant we keep is that the exponents present in the Map
are always positive.
Instances
isNormalMonom :: Monom v -> Bool Source #
mapMonom :: (Ord v, Ord w) => (v -> w) -> Monom v -> Monom w Source #
Note: we can collapse variables together!
emptyMonom :: Monom v Source #
isEmptyMonom :: Monom v -> Bool Source #
maxDegMonom :: Monom v -> Int Source #
totalDegMonom :: Monom v -> Int Source #