Safe Haskell | None |
---|---|
Language | Haskell98 |
Math.Algebra.NonCommutative.NCPoly
Description
A module providing a type for non-commutative polynomials.
- newtype Monomial v = M [v]
- divM :: Eq t => Monomial t -> Monomial t -> Maybe (Monomial t, Monomial t)
- newtype NPoly r v = NP [(Monomial v, r)]
- cmpTerm :: Ord a => (a, t) -> (a, t1) -> Ordering
- mergeTerms :: (Ord t, Num t1, Eq t1) => [(t, t1)] -> [(t, t1)] -> [(t, t1)]
- collect :: (Num a, Eq a, Eq t) => [(t, a)] -> [(t, a)]
- data Var
- var :: Num k => v -> NPoly k v
- x :: NPoly Q Var
- y :: NPoly Q Var
- z :: NPoly Q Var
- lm :: NPoly t t1 -> Monomial t1
- lc :: NPoly t t1 -> t
- lt :: NPoly r v -> NPoly r v
- quotRemNP :: (Show t, Ord t, Fractional t1, Eq t1) => NPoly t1 t -> [NPoly t1 t] -> ([(NPoly t1 t, NPoly t1 t)], NPoly t1 t)
- remNP :: (Show t, Ord t, Fractional t1, Eq t1) => NPoly t1 t -> [NPoly t1 t] -> NPoly t1 t
- (%%) :: (Show t, Ord t, Fractional t1, Eq t1) => NPoly t1 t -> [NPoly t1 t] -> NPoly t1 t
- remNP2 :: (Show v, Ord v, Num t, Eq t) => NPoly t v -> [NPoly t v] -> NPoly t v
- toMonic :: (Show v, Ord v, Fractional r, Eq r) => NPoly r v -> NPoly r v
- inject :: (Show v, Num r, Eq v, Eq r) => r -> NPoly r v
- subst :: (Show r1, Show v, Show t, Ord v, Num r1, Num r, Eq r1, Eq r, Eq t) => [(NPoly r1 t, NPoly r v)] -> NPoly r t -> NPoly r v
- class Invertible a where
- (^-) :: (Invertible a, Num a, Integral b) => a -> b -> a
Documentation
Constructors
M [v] |
Instances
(Eq r, Eq v) => Eq (NPoly r v) Source # | |
(Eq k, Fractional k, Ord v, Show v) => Fractional (NPoly k v) Source # | |
(Eq r, Num r, Ord v, Show v) => Num (NPoly r v) Source # | |
(Ord r, Ord v) => Ord (NPoly r v) Source # | |
(Show r, Eq v, Show v) => Show (NPoly r v) Source # | |
Invertible (NPoly LPQ BraidGens) Source # | |
Invertible (NPoly LPQ IwahoriHeckeGens) Source # | |
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.
quotRemNP :: (Show t, Ord t, Fractional t1, Eq t1) => NPoly t1 t -> [NPoly t1 t] -> ([(NPoly t1 t, NPoly t1 t)], NPoly t1 t) Source #
(%%) :: (Show t, Ord t, Fractional t1, Eq t1) => NPoly t1 t -> [NPoly t1 t] -> NPoly t1 t infixl 7 Source #
subst :: (Show r1, Show v, Show t, Ord v, Num r1, Num r, Eq r1, Eq r, Eq t) => [(NPoly r1 t, NPoly r v)] -> NPoly r t -> NPoly r v Source #