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

Math.Algebra.Polynomial.Monomial.Infinite

Description

Multivariate monomials where the variable set is the countable infinite set {x_1, x_2, x_3,... }

Synopsis

Monomials

newtype XInf (var :: Symbol) Source #

Monomials of the variables x1,x2,x3,.... The internal representation is a list of exponents: x1^e1*x2^e2*x3^e3... is represented by [e1,e2,e3,...].

We assume that only finitely many nonzero exponents appear.

The type is indexed by the name of the variables.

Constructors

XInf [Int] 

Instances

Instances details
Eq (XInf var) Source # 
Instance details

Defined in Math.Algebra.Polynomial.Monomial.Infinite

Methods

(==) :: XInf var -> XInf var -> Bool #

(/=) :: XInf var -> XInf var -> Bool #

Ord (XInf var) Source # 
Instance details

Defined in Math.Algebra.Polynomial.Monomial.Infinite

Methods

compare :: XInf var -> XInf var -> Ordering #

(<) :: XInf var -> XInf var -> Bool #

(<=) :: XInf var -> XInf var -> Bool #

(>) :: XInf var -> XInf var -> Bool #

(>=) :: XInf var -> XInf var -> Bool #

max :: XInf var -> XInf var -> XInf var #

min :: XInf var -> XInf var -> XInf var #

Show (XInf var) Source # 
Instance details

Defined in Math.Algebra.Polynomial.Monomial.Infinite

Methods

showsPrec :: Int -> XInf var -> ShowS #

show :: XInf var -> String #

showList :: [XInf var] -> ShowS #

Semigroup (XInf var) Source # 
Instance details

Defined in Math.Algebra.Polynomial.Monomial.Infinite

Methods

(<>) :: XInf var -> XInf var -> XInf var #

sconcat :: NonEmpty (XInf var) -> XInf var #

stimes :: Integral b => b -> XInf var -> XInf var #

Monoid (XInf var) Source # 
Instance details

Defined in Math.Algebra.Polynomial.Monomial.Infinite

Methods

mempty :: XInf var #

mappend :: XInf var -> XInf var -> XInf var #

mconcat :: [XInf var] -> XInf var #

KnownSymbol var => Pretty (XInf var) Source # 
Instance details

Defined in Math.Algebra.Polynomial.Monomial.Infinite

KnownSymbol v => Monomial (XInf v) Source # 
Instance details

Defined in Math.Algebra.Polynomial.Monomial.Infinite

Associated Types

type VarM (XInf v) Source #

Methods

normalizeM :: XInf v -> XInf v Source #

isNormalM :: XInf v -> Bool Source #

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

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

emptyM :: XInf v Source #

isEmptyM :: XInf v -> Bool Source #

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

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

mulM :: XInf v -> XInf v -> XInf v Source #

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

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

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

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

maxDegM :: XInf v -> Int Source #

totalDegM :: XInf v -> Int Source #

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

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

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

type VarM (XInf v) Source # 
Instance details

Defined in Math.Algebra.Polynomial.Monomial.Infinite

type VarM (XInf v) = Index

unXInf :: XInf var -> [Int] Source #

xInfVar :: KnownSymbol var => XInf var -> String Source #

Name of the variables

mulXInf :: XInf v -> XInf v -> XInf v Source #

productXInf :: Foldable f => f (XInf v) -> XInf v Source #

divXInf :: XInf v -> XInf v -> Maybe (XInf v) Source #

powXInf :: XInf v -> Int -> XInf v Source #

evalXInf :: Num c => (Index -> c) -> XInf v -> c Source #

varSubsXInf :: (Index -> Index) -> XInf v -> XInf v Source #

termSubsXInf :: Num c => (Index -> Maybe c) -> (XInf v, c) -> (XInf v, c) Source #

differentiation

diffXInf :: Num c => Index -> Int -> XInf v -> Maybe (XInf v, c) Source #