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

Safe HaskellNone
LanguageHaskell98

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) Source # 

Methods

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

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

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

Methods

compare :: Monomial v -> Monomial v -> Ordering #

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

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

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

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

max :: Monomial v -> Monomial v -> Monomial v #

min :: Monomial v -> Monomial v -> Monomial v #

(Eq v, Show v) => Show (Monomial v) Source # 

Methods

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

show :: Monomial v -> String #

showList :: [Monomial v] -> ShowS #

newtype NPoly r v Source #

Constructors

NP [(Monomial v, r)] 

Instances

(Eq r, Eq v) => Eq (NPoly r v) Source # 

Methods

(==) :: NPoly r v -> NPoly r v -> Bool #

(/=) :: NPoly r v -> NPoly r v -> Bool #

(Eq k, Fractional k, Ord v, Show v) => Fractional (NPoly k v) Source # 

Methods

(/) :: NPoly k v -> NPoly k v -> NPoly k v #

recip :: NPoly k v -> NPoly k v #

fromRational :: Rational -> NPoly k v #

(Eq r, Num r, Ord v, Show v) => Num (NPoly r v) Source # 

Methods

(+) :: NPoly r v -> NPoly r v -> NPoly r v #

(-) :: NPoly r v -> NPoly r v -> NPoly r v #

(*) :: NPoly r v -> NPoly r v -> NPoly r v #

negate :: NPoly r v -> NPoly r v #

abs :: NPoly r v -> NPoly r v #

signum :: NPoly r v -> NPoly r v #

fromInteger :: Integer -> NPoly r v #

(Ord r, Ord v) => Ord (NPoly r v) Source # 

Methods

compare :: NPoly r v -> NPoly r v -> Ordering #

(<) :: NPoly r v -> NPoly r v -> Bool #

(<=) :: NPoly r v -> NPoly r v -> Bool #

(>) :: NPoly r v -> NPoly r v -> Bool #

(>=) :: NPoly r v -> NPoly r v -> Bool #

max :: NPoly r v -> NPoly r v -> NPoly r v #

min :: NPoly r v -> NPoly r v -> NPoly r v #

(Show r, Eq v, Show v) => Show (NPoly r v) Source # 

Methods

showsPrec :: Int -> NPoly r v -> ShowS #

show :: NPoly r v -> String #

showList :: [NPoly r v] -> ShowS #

Invertible (NPoly LPQ BraidGens) Source # 
Invertible (NPoly LPQ IwahoriHeckeGens) Source # 

cmpTerm :: Ord a => (a, b1) -> (a, b2) -> Ordering Source #

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

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

data Var Source #

Constructors

X 
Y 
Z 

Instances

Eq Var Source # 

Methods

(==) :: Var -> Var -> Bool #

(/=) :: Var -> Var -> Bool #

Ord Var Source # 

Methods

compare :: Var -> Var -> Ordering #

(<) :: Var -> Var -> Bool #

(<=) :: Var -> Var -> Bool #

(>) :: Var -> Var -> Bool #

(>=) :: Var -> Var -> Bool #

max :: Var -> Var -> Var #

min :: Var -> Var -> Var #

Show Var Source # 

Methods

showsPrec :: Int -> Var -> ShowS #

show :: Var -> String #

showList :: [Var] -> ShowS #

var :: Num k => v -> NPoly k v Source #

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 r v -> Monomial v Source #

lc :: NPoly r v -> r Source #

lt :: NPoly r v -> NPoly r v Source #

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

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

(%%) :: (Eq r, Fractional r, Ord v, Show v) => NPoly r v -> [NPoly r v] -> NPoly r v infixl 7 Source #

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

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

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

subst :: (Num r2, Show p, Show r2, Eq p, Eq r2, Eq r1, Show v, Ord v, Num r1) => [(NPoly r2 p, NPoly r1 v)] -> NPoly r1 p -> NPoly r1 v Source #

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