HaskellForMaths-0.4.5: Combinatorics, group theory, commutative algebra, non-commutative algebra

Safe HaskellSafe-Infered

Math.Algebra.NonCommutative.NCPoly

Description

A module providing a type for non-commutative polynomials.

Synopsis

Documentation

newtype Monomial v Source

Constructors

M [v] 

Instances

Eq v => Eq (Monomial v) 
(Eq v, Show v) => Num (Monomial v) 
Ord v => Ord (Monomial v) 
(Eq v, Show v) => Show (Monomial v) 

newtype NPoly r v Source

Constructors

NP [(Monomial v, r)] 

Instances

(Eq r, Eq v) => Eq (NPoly r v) 
(Eq k, Fractional k, Ord v, Show v) => Fractional (NPoly k v) 
(Eq r, Num r, Ord v, Show v) => Num (NPoly r v) 
(Ord r, Ord v) => Ord (NPoly r v) 
(Show r, Eq v, Show v) => Show (NPoly r v) 
Invertible (NPoly LPQ BraidGens) 
Invertible (NPoly LPQ IwahoriHeckeGens) 

cmpTerm :: Ord a => (a, t) -> (a, t1) -> OrderingSource

mergeTerms :: (Eq a1, Num a1, Ord a) => [(a, a1)] -> [(a, a1)] -> [(a, a1)]Source

collect :: (Eq a1, Eq a, Num a1) => [(a, a1)] -> [(a, a1)]Source

data Var Source

Constructors

X 
Y 
Z 

Instances

var :: Num k => v -> NPoly k vSource

Create a non-commutative variable for use in forming non-commutative polynomials. For example, we could define x = var x, y = var y. Then x*y /= y*x.

lm :: NPoly t t1 -> Monomial t1Source

lc :: NPoly t t1 -> tSource

lt :: NPoly r v -> NPoly r vSource

quotRemNP :: (Eq r, Fractional r, Ord v, Show v) => NPoly r v -> [NPoly r v] -> ([(NPoly r v, NPoly r v)], NPoly r v)Source

remNP :: (Eq r, Fractional r, Ord v, Show v) => NPoly r v -> [NPoly r v] -> NPoly r vSource

(%%) :: (Eq r, Fractional r, Ord v, Show v) => NPoly r v -> [NPoly r v] -> NPoly r vSource

remNP2 :: (Eq r, Num r, Ord v, Show v) => NPoly r v -> [NPoly r v] -> NPoly r vSource

toMonic :: (Eq r, Fractional r, Ord v, Show v) => NPoly r v -> NPoly r vSource

inject :: (Eq v, Eq r, Num r, Show v) => r -> NPoly r vSource

subst :: (Eq r1, Eq v, Eq r, Num r1, Num r, Ord v1, Show v1, Show r, Show v) => [(NPoly r v, NPoly r1 v1)] -> NPoly r1 v -> NPoly r1 v1Source

(^-) :: (Integral b, Num a, Invertible a) => a -> b -> aSource