HLearn-algebra-1.1.0.0: Algebraic foundation for homomorphic learning

Safe HaskellNone

HLearn.Algebra.Structures.Groups

Contents

Description

These algebraic structures have sacrificed generality in favor of being easily used with the standard Haskell Prelude. The fact that monoids are not guaranteed to be semigroups makes this difficult.

Synopsis

Algebra

class Monoid g => Group g whereSource

Groups are monoids that also have an inverse. See https://en.wikipedia.org/wiki/Regular_semigroup

Methods

inverse :: g -> gSource

Instances

(Num r, Ord a) => Group (FreeModule r a) 
(Group model, SingI Nat n) => Group (Bagging' n seed model) 
Group (container model) => Group (FreeHomTrainer' k container model) 

class Monoid m => Abelian m Source

Instances

(Num r, Ord a) => Abelian (FreeModule r a) 
(Abelian model, SingI Nat n) => Abelian (Bagging' n seed model) 
Abelian (container model) => Abelian (FreeHomTrainer' k container model) 

Non-algebraic

data FreeInverse a Source

Constructors

FreeInverse !a 
Negate !a 

Instances

Eq a => Eq (FreeInverse a) 
Ord a => Ord (FreeInverse a) 
Read a => Read (FreeInverse a) 
Show a => Show (FreeInverse a) 
Eq a => Invertible (FreeInverse a) 

class Invertible a whereSource

Methods

mkinverse :: a -> aSource

isInverse :: a -> a -> BoolSource

Instances