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

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

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

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

data Var Source

Constructors

 X Y Z

Instances

 Eq Var Ord Var Show Var

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 t t1 -> Monomial t1 Source

lc :: NPoly t t1 -> t Source

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

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

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

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

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

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

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

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

class Invertible a where Source

Methods

inv :: a -> a Source

Instances

 Invertible LPQ Invertible (NPoly LPQ BraidGens) Invertible (NPoly LPQ IwahoriHeckeGens)

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