polynomial-algebra-0.1: Multivariate polynomial rings
Safe HaskellNone
LanguageHaskell2010

Math.Algebra.Polynomial.Monomial.Generic

Description

Multivariate monomials where the set of variables is given by the inhabitants of a type

Synopsis

Monomials

newtype Monom v Source #

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.

Constructors

Monom (Map v Int) 

Instances

Instances details
Eq v => Eq (Monom v) Source # 
Instance details

Defined in Math.Algebra.Polynomial.Monomial.Generic

Methods

(==) :: Monom v -> Monom v -> Bool #

(/=) :: Monom v -> Monom v -> Bool #

Ord v => Ord (Monom v) Source # 
Instance details

Defined in Math.Algebra.Polynomial.Monomial.Generic

Methods

compare :: Monom v -> Monom v -> Ordering #

(<) :: Monom v -> Monom v -> Bool #

(<=) :: Monom v -> Monom v -> Bool #

(>) :: Monom v -> Monom v -> Bool #

(>=) :: Monom v -> Monom v -> Bool #

max :: Monom v -> Monom v -> Monom v #

min :: Monom v -> Monom v -> Monom v #

Show v => Show (Monom v) Source # 
Instance details

Defined in Math.Algebra.Polynomial.Monomial.Generic

Methods

showsPrec :: Int -> Monom v -> ShowS #

show :: Monom v -> String #

showList :: [Monom v] -> ShowS #

Ord v => Semigroup (Monom v) Source # 
Instance details

Defined in Math.Algebra.Polynomial.Monomial.Generic

Methods

(<>) :: Monom v -> Monom v -> Monom v #

sconcat :: NonEmpty (Monom v) -> Monom v #

stimes :: Integral b => b -> Monom v -> Monom v #

Ord v => Monoid (Monom v) Source # 
Instance details

Defined in Math.Algebra.Polynomial.Monomial.Generic

Methods

mempty :: Monom v #

mappend :: Monom v -> Monom v -> Monom v #

mconcat :: [Monom v] -> Monom v #

Pretty v => Pretty (Monom v) Source # 
Instance details

Defined in Math.Algebra.Polynomial.Monomial.Generic

(Ord v, Pretty v) => Monomial (Monom v) Source # 
Instance details

Defined in Math.Algebra.Polynomial.Monomial.Generic

Associated Types

type VarM (Monom v) Source #

Methods

normalizeM :: Monom v -> Monom v Source #

isNormalM :: Monom v -> Bool Source #

fromListM :: [(VarM (Monom v), Int)] -> Monom v Source #

toListM :: Monom v -> [(VarM (Monom v), Int)] Source #

emptyM :: Monom v Source #

isEmptyM :: Monom v -> Bool Source #

variableM :: VarM (Monom v) -> Monom v Source #

singletonM :: VarM (Monom v) -> Int -> Monom v Source #

mulM :: Monom v -> Monom v -> Monom v Source #

productM :: [Monom v] -> Monom v Source #

powM :: Monom v -> Int -> Monom v Source #

divM :: Monom v -> Monom v -> Maybe (Monom v) Source #

diffM :: Num c => VarM (Monom v) -> Int -> Monom v -> Maybe (Monom v, c) Source #

maxDegM :: Monom v -> Int Source #

totalDegM :: Monom v -> Int Source #

evalM :: Num c => (VarM (Monom v) -> c) -> Monom v -> c Source #

varSubsM :: (VarM (Monom v) -> VarM (Monom v)) -> Monom v -> Monom v Source #

termSubsM :: Num c => (VarM (Monom v) -> Maybe c) -> (Monom v, c) -> (Monom v, c) Source #

type VarM (Monom v) Source # 
Instance details

Defined in Math.Algebra.Polynomial.Monomial.Generic

type VarM (Monom v) = v

monomToList :: Ord v => Monom v -> [(v, Int)] Source #

monomFromList :: Ord v => [(v, Int)] -> Monom v Source #

mapMonom :: (Ord v, Ord w) => (v -> w) -> Monom v -> Monom w Source #

Note: we can collapse variables together!

mulMonom :: Ord v => Monom v -> Monom v -> Monom v Source #

divMonom :: Ord v => Monom v -> Monom v -> Maybe (Monom v) Source #

prodMonoms :: (Foldable f, Ord v) => f (Monom v) -> Monom v Source #

powMonom :: Ord v => Monom v -> Int -> Monom v Source #

varMonom :: Ord v => v -> Monom v Source #

singletonMonom :: Ord v => v -> Int -> Monom v Source #

evalMonom :: (Num c, Ord v) => (v -> c) -> Monom v -> c Source #

termSubsMonom :: (Num c, Ord v) => (v -> Maybe c) -> (Monom v, c) -> (Monom v, c) Source #

differentiation

diffMonom :: (Ord v, Num c) => v -> Int -> Monom v -> Maybe (Monom v, c) Source #