Safe Haskell | None |
---|
Numeric.Algebra
Contents
- Additive
- Multiplicative
- Ring-Structures
- Rings
- Modules
- Algebras
- Ring Properties
- Natural numbers
- Representable Additive
- Representable Monoidal
- Representable Group
- Representable Multiplicative (via Algebra)
- Representable Unital (via UnitalAlgebra)
- Representable Rig (via Algebra)
- Representable Ring (via Algebra)
- Norm
- Covectors
- class Additive r where
- sum1 :: (Foldable1 f, Additive r) => f r -> r
- class Additive r => Abelian r
- class Additive r => Idempotent r
- sinnum1pIdempotent :: Natural -> r -> r
- sinnumIdempotent :: (Integral n, Idempotent r, Monoidal r) => n -> r -> r
- class Additive m => Partitionable m where
- partitionWith :: (m -> m -> r) -> m -> NonEmpty r
- class (LeftModule Natural m, RightModule Natural m) => Monoidal m where
- sum :: (Foldable f, Monoidal m) => f m -> m
- class (LeftModule Integer r, RightModule Integer r, Monoidal r) => Group r where
- class Multiplicative r where
- (*) :: r -> r -> r
- pow1p :: Whole n => r -> n -> r
- productWith1 :: Foldable1 f => (a -> r) -> f a -> r
- product1 :: (Foldable1 f, Multiplicative r) => f r -> r
- class Multiplicative r => Commutative r
- class Multiplicative r => Unital r where
- one :: r
- pow :: Whole n => r -> n -> r
- productWith :: Foldable f => (a -> r) -> f a -> r
- product :: (Foldable f, Unital r) => f r -> r
- class Multiplicative r => Band r
- pow1pBand :: Whole n => r -> n -> r
- powBand :: (Unital r, Whole n) => r -> n -> r
- class Unital r => Division r where
- class Multiplicative m => Factorable m where
- factorWith :: (m -> m -> r) -> m -> NonEmpty r
- class Multiplicative r => InvolutiveMultiplication r where
- adjoint :: r -> r
- class (Commutative r, InvolutiveMultiplication r) => TriviallyInvolutive r
- class (Additive r, Abelian r, Multiplicative r) => Semiring r
- class (Semiring r, InvolutiveMultiplication r) => InvolutiveSemiring r
- class (Semiring r, Idempotent r) => Dioid r
- class (Group r, Semiring r) => Rng r
- class (Semiring r, Unital r, Monoidal r) => Rig r where
- fromNatural :: Natural -> r
- class (Rig r, Rng r) => Ring r where
- fromInteger :: Integer -> r
- class Ring r => LocalRing r
- class (Division r, Ring r) => DivisionRing r
- class (Commutative r, DivisionRing r) => Field r
- class (Semiring r, Additive m) => LeftModule r m where
- (.*) :: r -> m -> m
- class (Semiring r, Additive m) => RightModule r m where
- (*.) :: m -> r -> m
- class (LeftModule r m, RightModule r m) => Module r m
- class Semiring r => Algebra r a where
- mult :: (a -> a -> r) -> a -> r
- class Semiring r => Coalgebra r c where
- comult :: (c -> r) -> c -> c -> r
- class Algebra r a => UnitalAlgebra r a where
- unit :: r -> a -> r
- class Coalgebra r c => CounitalCoalgebra r c where
- counit :: (c -> r) -> r
- class (UnitalAlgebra r a, CounitalCoalgebra r a) => Bialgebra r a
- class (InvolutiveSemiring r, Algebra r a) => InvolutiveAlgebra r a where
- inv :: (a -> r) -> a -> r
- class (InvolutiveSemiring r, Coalgebra r c) => InvolutiveCoalgebra r c where
- coinv :: (c -> r) -> c -> r
- class (Bialgebra r h, InvolutiveAlgebra r h, InvolutiveCoalgebra r h) => InvolutiveBialgebra r h
- class (CommutativeAlgebra r a, TriviallyInvolutive r, InvolutiveAlgebra r a) => TriviallyInvolutiveAlgebra r a
- class (CocommutativeCoalgebra r a, TriviallyInvolutive r, InvolutiveCoalgebra r a) => TriviallyInvolutiveCoalgebra r a
- class (InvolutiveBialgebra r h, TriviallyInvolutiveAlgebra r h, TriviallyInvolutiveCoalgebra r h) => TriviallyInvolutiveBialgebra r h
- class Algebra r a => IdempotentAlgebra r a
- class (Bialgebra r h, IdempotentAlgebra r h, IdempotentCoalgebra r h) => IdempotentBialgebra r h
- class Algebra r a => CommutativeAlgebra r a
- class (Bialgebra r h, CommutativeAlgebra r h, CocommutativeCoalgebra r h) => CommutativeBialgebra r h
- class Coalgebra r c => CocommutativeCoalgebra r c
- class UnitalAlgebra r a => DivisionAlgebra r a where
- recipriocal :: (a -> r) -> a -> r
- class Bialgebra r h => HopfAlgebra r h where
- antipode :: (h -> r) -> h -> r
- class Rig r => Characteristic r where
- charInt :: (Integral s, Bounded s) => proxy s -> Natural
- charWord :: (Whole s, Bounded s) => proxy s -> Natural
- class Order a where
- class (AdditiveOrder r, Rig r) => OrderedRig r
- class (Additive r, Order r) => AdditiveOrder r
- class Order a => LocallyFiniteOrder a
- class Monoidal r => DecidableZero r
- class Unital r => DecidableUnits r
- class Unital r => DecidableAssociates r
- data Natural
- class Integral n => Whole n where
- addRep :: (Applicative m, Additive r) => m r -> m r -> m r
- sinnum1pRep :: (Whole n, Functor m, Additive r) => n -> m r -> m r
- zeroRep :: (Applicative m, Monoidal r) => m r
- sinnumRep :: (Whole n, Functor m, Monoidal r) => n -> m r -> m r
- negateRep :: (Functor m, Group r) => m r -> m r
- minusRep :: (Applicative m, Group r) => m r -> m r -> m r
- subtractRep :: (Applicative m, Group r) => m r -> m r -> m r
- timesRep :: (Integral n, Functor m, Group r) => n -> m r -> m r
- mulRep :: (Representable m, Algebra r (Rep m)) => m r -> m r -> m r
- oneRep :: (Representable m, Unital r, UnitalAlgebra r (Rep m)) => m r
- fromNaturalRep :: (UnitalAlgebra r (Rep m), Representable m, Rig r) => Natural -> m r
- fromIntegerRep :: (UnitalAlgebra r (Rep m), Representable m, Ring r) => Integer -> m r
- class Additive r => Quadrance r m where
- quadrance :: m -> r
- newtype Covector r a = Covector {
- ($*) :: (a -> r) -> r
- counitM :: UnitalAlgebra r a => a -> Covector r ()
- unitM :: CounitalCoalgebra r c => Covector r c
- comultM :: Algebra r a => a -> Covector r (a, a)
- multM :: Coalgebra r c => c -> c -> Covector r c
- invM :: InvolutiveAlgebra r h => h -> Covector r h
- coinvM :: InvolutiveCoalgebra r h => h -> Covector r h
- antipodeM :: HopfAlgebra r h => h -> Covector r h
- convolveM :: (Algebra r c, Coalgebra r a) => (c -> Covector r a) -> (c -> Covector r a) -> c -> Covector r a
Additive
additive semigroups
(a + b) + c = a + (b + c) sinnum 1 a = a sinnum (2 * n) a = sinnum n a + sinnum n a sinnum (2 * n + 1) a = sinnum n a + sinnum n a + a
Instances
additive Abelian semigroups
class Additive r => Abelian r Source
an additive abelian semigroup
a + b = b + a
Instances
additive idempotent semigroups
class Additive r => Idempotent r Source
An additive semigroup with idempotent addition.
a + a = a
Instances
Idempotent Bool | |
Idempotent () | |
Idempotent r => Idempotent (Complex r) | |
Idempotent r => Idempotent (Quaternion r) | |
Idempotent r => Idempotent (Dual r) | |
Idempotent r => Idempotent (Hyper' r) | |
Idempotent r => Idempotent (Hyper r) | |
Idempotent r => Idempotent (Dual' r) | |
Idempotent r => Idempotent (Quaternion' r) | |
Idempotent r => Idempotent (Trig r) | |
Band r => Idempotent (Log r) | |
Idempotent r => Idempotent (Opposite r) | |
Idempotent r => Idempotent (ZeroRng r) | |
Idempotent r => Idempotent (e -> r) | |
(Idempotent a, Idempotent b) => Idempotent (a, b) | |
Idempotent r => Idempotent (Covector r a) | |
(Idempotent a, Idempotent b, Idempotent c) => Idempotent (a, b, c) | |
(Idempotent a, Idempotent b, Idempotent c, Idempotent d) => Idempotent (a, b, c, d) | |
(Idempotent a, Idempotent b, Idempotent c, Idempotent d, Idempotent e) => Idempotent (a, b, c, d, e) |
sinnum1pIdempotent :: Natural -> r -> rSource
sinnumIdempotent :: (Integral n, Idempotent r, Monoidal r) => n -> r -> rSource
partitionable additive semigroups
class Additive m => Partitionable m whereSource
Methods
partitionWith :: (m -> m -> r) -> m -> NonEmpty rSource
partitionWith f c returns a list containing f a b for each a b such that a + b = c,
Instances
Partitionable Bool | |
Partitionable () | |
Partitionable Natural | |
Partitionable r => Partitionable (Complex r) | |
Partitionable r => Partitionable (Quaternion r) | |
Partitionable r => Partitionable (Dual r) | |
Partitionable r => Partitionable (Hyper' r) | |
Partitionable r => Partitionable (Hyper r) | |
Partitionable r => Partitionable (Dual' r) | |
Partitionable r => Partitionable (Quaternion' r) | |
Partitionable r => Partitionable (Trig r) | |
Factorable r => Partitionable (Log r) | |
(Partitionable a, Partitionable b) => Partitionable (a, b) | |
(Partitionable a, Partitionable b, Partitionable c) => Partitionable (a, b, c) | |
(Partitionable a, Partitionable b, Partitionable c, Partitionable d) => Partitionable (a, b, c, d) | |
(Partitionable a, Partitionable b, Partitionable c, Partitionable d, Partitionable e) => Partitionable (a, b, c, d, e) |
additive monoids
class (LeftModule Natural m, RightModule Natural m) => Monoidal m whereSource
An additive monoid
zero + a = a = a + zero
Instances
additive groups
class (LeftModule Integer r, RightModule Integer r, Monoidal r) => Group r whereSource
Methods
Instances
Group Int | |
Group Int8 | |
Group Int16 | |
Group Int32 | |
Group Int64 | |
Group Integer | |
Group Word | |
Group Word8 | |
Group Word16 | |
Group Word32 | |
Group Word64 | |
Group () | |
Group Euclidean | |
Group r => Group (Complex r) | |
Group r => Group (Quaternion r) | |
Group r => Group (Dual r) | |
Group r => Group (Hyper' r) | |
Group r => Group (Hyper r) | |
Group r => Group (Dual' r) | |
Group r => Group (Quaternion' r) | |
Group r => Group (Trig r) | |
Division r => Group (Log r) | |
Group r => Group (End r) | |
Group r => Group (Opposite r) | |
(Abelian r, Group r) => Group (RngRing r) | |
Group r => Group (ZeroRng r) | |
Euclidean d => Group (Fraction d) | |
Group r => Group (e -> r) | |
(Group a, Group b) => Group (a, b) | |
Group s => Group (Covector s a) | |
(Group a, Group b, Group c) => Group (a, b, c) | |
Group s => Group (Map s b a) | |
(Group a, Group b, Group c, Group d) => Group (a, b, c, d) | |
(Group a, Group b, Group c, Group d, Group e) => Group (a, b, c, d, e) |
Multiplicative
multiplicative semigroups
class Multiplicative r whereSource
A multiplicative semigroup
Methods
pow1p :: Whole n => r -> n -> rSource
productWith1 :: Foldable1 f => (a -> r) -> f a -> rSource
Instances
product1 :: (Foldable1 f, Multiplicative r) => f r -> rSource
commutative multiplicative semigroups
class Multiplicative r => Commutative r Source
A commutative multiplicative semigroup
Instances
multiplicative monoids
class Multiplicative r => Unital r whereSource
Instances
idempotent multiplicative semigroups
class Multiplicative r => Band r Source
An multiplicative semigroup with idempotent multiplication.
a * a = a
Instances
Band Bool | |
Band () | |
Idempotent r => Band (Exp r) | |
Band r => Band (Opposite r) | |
(Band a, Band b) => Band (a, b) | |
Band (Rect i j) | |
(Idempotent r, IdempotentCoalgebra r a) => Band (Covector r a) | |
(Band a, Band b, Band c) => Band (a, b, c) | |
(Band a, Band b, Band c, Band d) => Band (a, b, c, d) | |
(Band a, Band b, Band c, Band d, Band e) => Band (a, b, c, d, e) |
multiplicative groups
class Unital r => Division r whereSource
Methods
Instances
Division () | |
(Commutative r, InvolutiveSemiring r, DivisionRing r) => Division (Complex r) | |
(TriviallyInvolutive r, Ring r, Division r) => Division (Quaternion r) | |
(Commutative r, InvolutiveSemiring r, DivisionRing r) => Division (Dual r) | |
(Commutative r, InvolutiveSemiring r, DivisionRing r) => Division (Hyper' r) | |
(Commutative r, InvolutiveSemiring r, DivisionRing r) => Division (Dual' r) | |
(TriviallyInvolutive r, Ring r, Division r) => Division (Quaternion' r) | |
Group r => Division (Exp r) | |
Division r => Division (Opposite r) | |
(Rng r, Division r) => Division (RngRing r) | |
Euclidean d => Division (Fraction d) | |
(Unital r, DivisionAlgebra r a) => Division (a -> r) | |
(Division a, Division b) => Division (a, b) | |
(Division a, Division b, Division c) => Division (a, b, c) | |
(Division a, Division b, Division c, Division d) => Division (a, b, c, d) | |
(Division a, Division b, Division c, Division d, Division e) => Division (a, b, c, d, e) |
factorable multiplicative semigroups
class Multiplicative m => Factorable m whereSource
`factorWith f c` returns a non-empty list containing `f a b` for all `a, b` such that `a * b = c`.
Results of factorWith f 0 are undefined and may result in either an error or an infinite list.
Methods
factorWith :: (m -> m -> r) -> m -> NonEmpty rSource
Instances
Factorable Bool | |
Factorable () | |
Partitionable r => Factorable (Exp r) | |
(Factorable a, Factorable b) => Factorable (a, b) | |
(Factorable a, Factorable b, Factorable c) => Factorable (a, b, c) | |
(Factorable a, Factorable b, Factorable c, Factorable d) => Factorable (a, b, c, d) | |
(Factorable a, Factorable b, Factorable c, Factorable d, Factorable e) => Factorable (a, b, c, d, e) |
involutive multiplicative semigroups
class Multiplicative r => InvolutiveMultiplication r whereSource
An semigroup with involution
adjoint a * adjoint b = adjoint (b * a)
Instances
class (Commutative r, InvolutiveMultiplication r) => TriviallyInvolutive r Source
adjoint = id
Instances
Ring-Structures
Semirings
class (Additive r, Abelian r, Multiplicative r) => Semiring r Source
A pair of an additive abelian semigroup, and a multiplicative semigroup, with the distributive laws:
a(b + c) = ab + ac -- left distribution (we are a LeftNearSemiring) (a + b)c = ac + bc -- right distribution (we are a [Right]NearSemiring)
Common notation includes the laws for additive and multiplicative identity in semiring.
If you want that, look at Rig
instead.
Ideally we'd use the cyclic definition:
class (LeftModule r r, RightModule r r, Additive r, Abelian r, Multiplicative r) => Semiring r
to enforce that every semiring r is an r-module over itself, but Haskell doesn't like that.
Instances
class (Semiring r, InvolutiveMultiplication r) => InvolutiveSemiring r Source
adjoint (x + y) = adjoint x + adjoint y
Instances
class (Semiring r, Idempotent r) => Dioid r Source
Instances
(Semiring r, Idempotent r) => Dioid r |
Rngs
Rigs
class (Semiring r, Unital r, Monoidal r) => Rig r whereSource
A Ring without (n)egation
Methods
fromNatural :: Natural -> rSource
Instances
Rig Bool | |
Rig Int | |
Rig Int8 | |
Rig Int16 | |
Rig Int32 | |
Rig Int64 | |
Rig Integer | |
Rig Word | |
Rig Word8 | |
Rig Word16 | |
Rig Word32 | |
Rig Word64 | |
Rig () | |
Rig Natural | |
Rig Euclidean | |
(Commutative r, Ring r) => Rig (Complex r) | |
(TriviallyInvolutive r, Ring r) => Rig (Quaternion r) | |
(Commutative r, Ring r) => Rig (Dual r) | |
(Commutative r, Rig r) => Rig (Hyper' r) | |
(Commutative r, Rig r) => Rig (Hyper r) | |
(Commutative r, Ring r) => Rig (Dual' r) | |
Rig (BasisCoblade m) | |
(TriviallyInvolutive r, Ring r) => Rig (Quaternion' r) | |
(Commutative r, Ring r) => Rig (Trig r) | |
(Abelian r, Monoidal r) => Rig (End r) | |
Rig r => Rig (Opposite r) | |
Rng r => Rig (RngRing r) | |
Euclidean d => Rig (Fraction d) | |
(Rig a, Rig b) => Rig (a, b) | |
(Rig r, CounitalCoalgebra r m) => Rig (Covector r m) | |
(Rig a, Rig b, Rig c) => Rig (a, b, c) | |
(Rig r, CounitalCoalgebra r m) => Rig (Map r b m) | |
(Rig a, Rig b, Rig c, Rig d) => Rig (a, b, c, d) | |
(Rig a, Rig b, Rig c, Rig d, Rig e) => Rig (a, b, c, d, e) |
Rings
class (Rig r, Rng r) => Ring r whereSource
Methods
fromInteger :: Integer -> rSource
Instances
Ring Int | |
Ring Int8 | |
Ring Int16 | |
Ring Int32 | |
Ring Int64 | |
Ring Integer | |
Ring Word | |
Ring Word8 | |
Ring Word16 | |
Ring Word32 | |
Ring Word64 | |
Ring () | |
Ring Euclidean | |
(Commutative r, Ring r) => Ring (Complex r) | |
(TriviallyInvolutive r, Ring r) => Ring (Quaternion r) | |
(Commutative r, Ring r) => Ring (Dual r) | |
(Commutative r, Ring r) => Ring (Hyper' r) | |
(Commutative r, Ring r) => Ring (Hyper r) | |
(Commutative r, Ring r) => Ring (Dual' r) | |
(TriviallyInvolutive r, Ring r) => Ring (Quaternion' r) | |
(Commutative r, Ring r) => Ring (Trig r) | |
(Abelian r, Group r) => Ring (End r) | |
Ring r => Ring (Opposite r) | |
Rng r => Ring (RngRing r) | |
Euclidean d => Ring (Fraction d) | |
(Ring a, Ring b) => Ring (a, b) | |
(Ring r, CounitalCoalgebra r m) => Ring (Covector r m) | |
(Ring a, Ring b, Ring c) => Ring (a, b, c) | |
(Ring r, CounitalCoalgebra r m) => Ring (Map r a m) | |
(Ring a, Ring b, Ring c, Ring d) => Ring (a, b, c, d) | |
(Ring a, Ring b, Ring c, Ring d, Ring e) => Ring (a, b, c, d, e) |
Division Rings
class (Division r, Ring r) => DivisionRing r Source
Instances
(Division r, Ring r) => DivisionRing r |
class (Commutative r, DivisionRing r) => Field r Source
Instances
(Commutative r, DivisionRing r) => Field r |
Modules
class (Semiring r, Additive m) => LeftModule r m whereSource
Instances
class (Semiring r, Additive m) => RightModule r m whereSource
Instances
class (LeftModule r m, RightModule r m) => Module r m Source
Instances
(LeftModule r m, RightModule r m) => Module r m |
Algebras
associative algebras over (non-commutative) semirings
class Semiring r => Algebra r a whereSource
An associative algebra built with a free module over a semiring
Instances
class Semiring r => Coalgebra r c whereSource
Instances
Semiring r => Coalgebra r IntSet | the free commutative band coalgebra over Int |
Semiring r => Coalgebra r () | |
Rng k => Coalgebra k ComplexBasis | |
(TriviallyInvolutive r, Rng r) => Coalgebra r QuaternionBasis | the trivial diagonal coalgebra |
Rng k => Coalgebra k DualBasis | |
(Commutative k, Monoidal k, Semiring k) => Coalgebra k HyperBasis' | |
(Commutative k, Semiring k) => Coalgebra k HyperBasis | the hyperbolic trigonometric coalgebra |
Rng k => Coalgebra k DualBasis' | |
(TriviallyInvolutive r, Rng r) => Coalgebra r QuaternionBasis' | dual quaternion comultiplication |
(Commutative k, Rng k) => Coalgebra k TrigBasis | |
(Semiring r, Additive b) => Coalgebra r (IntMap b) | the free commutative coalgebra over a set and Int |
(Semiring r, Ord a) => Coalgebra r (Set a) | the free commutative band coalgebra |
Semiring r => Coalgebra r (Seq a) | The tensor Hopf algebra |
Semiring r => Coalgebra r [a] | The tensor Hopf algebra |
(Commutative r, Monoidal r, Semiring r, PartialSemigroup a) => Coalgebra r (Morphism a) | |
(Eq a, Commutative r, Monoidal r, Semiring r) => Coalgebra r (Interval' a) | |
Eigenmetric r m => Coalgebra r (BasisCoblade m) | |
(Semiring r, Ord a, Additive b) => Coalgebra r (Map a b) | the free commutative coalgebra over a set and a given semigroup |
(Coalgebra r a, Coalgebra r b) => Coalgebra r (a, b) | |
Algebra r m => Coalgebra r (m -> r) | Every coalgebra gives rise to an algebra by vector space duality classically. Sadly, it requires vector space duality, which we cannot use constructively. The dual argument only relies in the fact that any constructive coalgebra can only inspect a finite number of coefficients, which we CAN exploit. |
(Coalgebra r a, Coalgebra r b, Coalgebra r c) => Coalgebra r (a, b, c) | |
(Coalgebra r a, Coalgebra r b, Coalgebra r c, Coalgebra r d) => Coalgebra r (a, b, c, d) | |
(Coalgebra r a, Coalgebra r b, Coalgebra r c, Coalgebra r d, Coalgebra r e) => Coalgebra r (a, b, c, d, e) |
unital algebras
class Algebra r a => UnitalAlgebra r a whereSource
An associative unital algebra over a semiring, built using a free module
Instances
class Coalgebra r c => CounitalCoalgebra r c whereSource
Instances
class (UnitalAlgebra r a, CounitalCoalgebra r a) => Bialgebra r a Source
A bialgebra is both a unital algebra and counital coalgebra
where the mult
and unit
are compatible in some sense with
the comult
and counit
. That is to say that
mult
and unit
are a coalgebra homomorphisms or (equivalently) that
comult
and counit
are an algebra homomorphisms.
Instances
Semiring r => Bialgebra r () | |
Rng k => Bialgebra k ComplexBasis | |
(TriviallyInvolutive r, Rng r) => Bialgebra r QuaternionBasis | |
Rng k => Bialgebra k DualBasis | |
(Commutative k, Monoidal k, Semiring k) => Bialgebra k HyperBasis' | |
(Commutative k, Semiring k) => Bialgebra k HyperBasis | |
Rng k => Bialgebra k DualBasis' | |
(TriviallyInvolutive r, Rng r) => Bialgebra r QuaternionBasis' | |
(Commutative k, Rng k) => Bialgebra k TrigBasis | |
(Monoidal r, Semiring r) => Bialgebra r (Seq a) | |
(Monoidal r, Semiring r) => Bialgebra r [a] | |
(Bialgebra r a, Bialgebra r b) => Bialgebra r (a, b) | |
(Bialgebra r a, Bialgebra r b, Bialgebra r c) => Bialgebra r (a, b, c) | |
(Bialgebra r a, Bialgebra r b, Bialgebra r c, Bialgebra r d) => Bialgebra r (a, b, c, d) | |
(Bialgebra r a, Bialgebra r b, Bialgebra r c, Bialgebra r d, Bialgebra r e) => Bialgebra r (a, b, c, d, e) |
involutive algebras
class (InvolutiveSemiring r, Algebra r a) => InvolutiveAlgebra r a whereSource
Instances
class (InvolutiveSemiring r, Coalgebra r c) => InvolutiveCoalgebra r c whereSource
Instances
class (Bialgebra r h, InvolutiveAlgebra r h, InvolutiveCoalgebra r h) => InvolutiveBialgebra r h Source
Instances
(Bialgebra r h, InvolutiveAlgebra r h, InvolutiveCoalgebra r h) => InvolutiveBialgebra r h |
class (CommutativeAlgebra r a, TriviallyInvolutive r, InvolutiveAlgebra r a) => TriviallyInvolutiveAlgebra r a Source
Instances
(TriviallyInvolutive r, InvolutiveSemiring r) => TriviallyInvolutiveAlgebra r () | |
(TriviallyInvolutiveAlgebra r a, TriviallyInvolutiveAlgebra r b) => TriviallyInvolutiveAlgebra r (a, b) | |
(TriviallyInvolutiveAlgebra r a, TriviallyInvolutiveAlgebra r b, TriviallyInvolutiveAlgebra r c) => TriviallyInvolutiveAlgebra r (a, b, c) | |
(TriviallyInvolutiveAlgebra r a, TriviallyInvolutiveAlgebra r b, TriviallyInvolutiveAlgebra r c, TriviallyInvolutiveAlgebra r d) => TriviallyInvolutiveAlgebra r (a, b, c, d) | |
(TriviallyInvolutiveAlgebra r a, TriviallyInvolutiveAlgebra r b, TriviallyInvolutiveAlgebra r c, TriviallyInvolutiveAlgebra r d, TriviallyInvolutiveAlgebra r e) => TriviallyInvolutiveAlgebra r (a, b, c, d, e) |
class (CocommutativeCoalgebra r a, TriviallyInvolutive r, InvolutiveCoalgebra r a) => TriviallyInvolutiveCoalgebra r a Source
Instances
(TriviallyInvolutive r, InvolutiveSemiring r) => TriviallyInvolutiveCoalgebra r () | |
(TriviallyInvolutiveCoalgebra r a, TriviallyInvolutiveCoalgebra r b) => TriviallyInvolutiveCoalgebra r (a, b) | |
(TriviallyInvolutiveCoalgebra r a, TriviallyInvolutiveCoalgebra r b, TriviallyInvolutiveCoalgebra r c) => TriviallyInvolutiveCoalgebra r (a, b, c) | |
(TriviallyInvolutiveCoalgebra r a, TriviallyInvolutiveCoalgebra r b, TriviallyInvolutiveCoalgebra r c, TriviallyInvolutiveCoalgebra r d) => TriviallyInvolutiveCoalgebra r (a, b, c, d) | |
(TriviallyInvolutiveCoalgebra r a, TriviallyInvolutiveCoalgebra r b, TriviallyInvolutiveCoalgebra r c, TriviallyInvolutiveCoalgebra r d, TriviallyInvolutiveCoalgebra r e) => TriviallyInvolutiveCoalgebra r (a, b, c, d, e) |
class (InvolutiveBialgebra r h, TriviallyInvolutiveAlgebra r h, TriviallyInvolutiveCoalgebra r h) => TriviallyInvolutiveBialgebra r h Source
Instances
(InvolutiveBialgebra r h, TriviallyInvolutiveAlgebra r h, TriviallyInvolutiveCoalgebra r h) => TriviallyInvolutiveBialgebra r h |
idempotent algebras
class Algebra r a => IdempotentAlgebra r a Source
Instances
(Semiring r, Band r) => IdempotentAlgebra r () | |
(Semiring r, Band r) => IdempotentAlgebra r IntSet | |
(Semiring r, Band r, Ord a) => IdempotentAlgebra r (Set a) | |
(IdempotentAlgebra r a, IdempotentAlgebra r b) => IdempotentAlgebra r (a, b) | |
(IdempotentAlgebra r a, IdempotentAlgebra r b, IdempotentAlgebra r c) => IdempotentAlgebra r (a, b, c) | |
(IdempotentAlgebra r a, IdempotentAlgebra r b, IdempotentAlgebra r c, IdempotentAlgebra r d) => IdempotentAlgebra r (a, b, c, d) | |
(IdempotentAlgebra r a, IdempotentAlgebra r b, IdempotentAlgebra r c, IdempotentAlgebra r d, IdempotentAlgebra r e) => IdempotentAlgebra r (a, b, c, d, e) |
class (Bialgebra r h, IdempotentAlgebra r h, IdempotentCoalgebra r h) => IdempotentBialgebra r h Source
Instances
(Bialgebra r h, IdempotentAlgebra r h, IdempotentCoalgebra r h) => IdempotentBialgebra r h |
commutative algebras
class Algebra r a => CommutativeAlgebra r a Source
Instances
(Commutative r, Semiring r) => CommutativeAlgebra r IntSet | |
(Commutative r, Semiring r) => CommutativeAlgebra r () | |
(Commutative r, Monoidal r, Semiring r, Abelian b, Partitionable b) => CommutativeAlgebra r (IntMap b) | |
(Commutative r, Semiring r, Ord a) => CommutativeAlgebra r (Set a) | |
(Commutative r, Monoidal r, Semiring r, Ord a, Abelian b, Partitionable b) => CommutativeAlgebra r (Map a b) | |
(CommutativeAlgebra r a, CommutativeAlgebra r b) => CommutativeAlgebra r (a, b) | |
(CommutativeAlgebra r a, CommutativeAlgebra r b, CommutativeAlgebra r c) => CommutativeAlgebra r (a, b, c) | |
(CommutativeAlgebra r a, CommutativeAlgebra r b, CommutativeAlgebra r c, CommutativeAlgebra r d) => CommutativeAlgebra r (a, b, c, d) | |
(CommutativeAlgebra r a, CommutativeAlgebra r b, CommutativeAlgebra r c, CommutativeAlgebra r d, CommutativeAlgebra r e) => CommutativeAlgebra r (a, b, c, d, e) |
class (Bialgebra r h, CommutativeAlgebra r h, CocommutativeCoalgebra r h) => CommutativeBialgebra r h Source
Instances
(Bialgebra r h, CommutativeAlgebra r h, CocommutativeCoalgebra r h) => CommutativeBialgebra r h |
class Coalgebra r c => CocommutativeCoalgebra r c Source
Instances
(Commutative r, Semiring r) => CocommutativeCoalgebra r IntSet | |
(Commutative r, Semiring r) => CocommutativeCoalgebra r () | |
(Commutative r, Semiring r, Abelian b) => CocommutativeCoalgebra r (IntMap b) | |
(Commutative r, Semiring r, Ord a) => CocommutativeCoalgebra r (Set a) | |
(Commutative r, Semiring r, Ord a, Abelian b) => CocommutativeCoalgebra r (Map a b) | |
(CocommutativeCoalgebra r a, CocommutativeCoalgebra r b) => CocommutativeCoalgebra r (a, b) | |
CommutativeAlgebra r m => CocommutativeCoalgebra r (m -> r) | |
(CocommutativeCoalgebra r a, CocommutativeCoalgebra r b, CocommutativeCoalgebra r c) => CocommutativeCoalgebra r (a, b, c) | |
(CocommutativeCoalgebra r a, CocommutativeCoalgebra r b, CocommutativeCoalgebra r c, CocommutativeCoalgebra r d) => CocommutativeCoalgebra r (a, b, c, d) | |
(CocommutativeCoalgebra r a, CocommutativeCoalgebra r b, CocommutativeCoalgebra r c, CocommutativeCoalgebra r d, CocommutativeCoalgebra r e) => CocommutativeCoalgebra r (a, b, c, d, e) |
division algebras
class UnitalAlgebra r a => DivisionAlgebra r a whereSource
Methods
recipriocal :: (a -> r) -> a -> rSource
Hopf alegebras
class Bialgebra r h => HopfAlgebra r h whereSource
A HopfAlgebra algebra on a semiring, where the module is free.
When antipode . antipode = id
and antipode is an antihomomorphism then we are an InvolutiveBialgebra with inv = antipode
as well
Instances
(InvolutiveSemiring k, Rng k) => HopfAlgebra k ComplexBasis | |
(TriviallyInvolutive r, InvolutiveSemiring r, Rng r) => HopfAlgebra r QuaternionBasis | |
(InvolutiveSemiring k, Rng k) => HopfAlgebra k DualBasis | |
(Commutative k, Group k, InvolutiveSemiring k) => HopfAlgebra k HyperBasis' | |
(Commutative k, Group k, InvolutiveSemiring k) => HopfAlgebra k HyperBasis | |
(InvolutiveSemiring k, Rng k) => HopfAlgebra k DualBasis' | |
(TriviallyInvolutive r, InvolutiveSemiring r, Rng r) => HopfAlgebra r QuaternionBasis' | |
(Commutative k, Group k, InvolutiveSemiring k) => HopfAlgebra k TrigBasis | |
(HopfAlgebra r a, HopfAlgebra r b) => HopfAlgebra r (a, b) | |
(HopfAlgebra r a, HopfAlgebra r b, HopfAlgebra r c) => HopfAlgebra r (a, b, c) | |
(HopfAlgebra r a, HopfAlgebra r b, HopfAlgebra r c, HopfAlgebra r d) => HopfAlgebra r (a, b, c, d) | |
(HopfAlgebra r a, HopfAlgebra r b, HopfAlgebra r c, HopfAlgebra r d, HopfAlgebra r e) => HopfAlgebra r (a, b, c, d, e) |
Ring Properties
Characteristic
class Rig r => Characteristic r whereSource
Instances
Characteristic Bool | NB: we're using the boolean semiring, not the boolean ring |
Characteristic Int | |
Characteristic Int8 | |
Characteristic Int16 | |
Characteristic Int32 | |
Characteristic Int64 | |
Characteristic Integer | |
Characteristic Word | |
Characteristic Word8 | |
Characteristic Word16 | |
Characteristic Word32 | |
Characteristic Word64 | |
Characteristic () | |
Characteristic Natural | |
(Characteristic d, Euclidean d) => Characteristic (Fraction d) | |
(Characteristic a, Characteristic b) => Characteristic (a, b) | |
(Characteristic a, Characteristic b, Characteristic c) => Characteristic (a, b, c) | |
(Characteristic a, Characteristic b, Characteristic c, Characteristic d) => Characteristic (a, b, c, d) | |
(Characteristic a, Characteristic b, Characteristic c, Characteristic d, Characteristic e) => Characteristic (a, b, c, d, e) |
Order
Instances
Order Bool | |
Order Int | |
Order Int8 | |
Order Int16 | |
Order Int32 | |
Order Int64 | |
Order Integer | |
Order Word | |
Order Word8 | |
Order Word16 | |
Order Word32 | |
Order Word64 | |
Order () | |
Order Natural | |
Ord a => Order (Set a) | |
(Order a, Order b) => Order (a, b) | |
(Order a, Order b, Order c) => Order (a, b, c) | |
(Order a, Order b, Order c, Order d) => Order (a, b, c, d) | |
(Order a, Order b, Order c, Order d, Order e) => Order (a, b, c, d, e) |
class (AdditiveOrder r, Rig r) => OrderedRig r Source
Instances
OrderedRig Bool | |
OrderedRig Integer | |
OrderedRig () | |
OrderedRig Natural | |
(OrderedRig a, OrderedRig b) => OrderedRig (a, b) | |
(OrderedRig a, OrderedRig b, OrderedRig c) => OrderedRig (a, b, c) | |
(OrderedRig a, OrderedRig b, OrderedRig c, OrderedRig d) => OrderedRig (a, b, c, d) | |
(OrderedRig a, OrderedRig b, OrderedRig c, OrderedRig d, OrderedRig e) => OrderedRig (a, b, c, d, e) |
class (Additive r, Order r) => AdditiveOrder r Source
z + x <= z + y = x <= y = x + z <= y + z
Instances
AdditiveOrder Bool | |
AdditiveOrder Integer | |
AdditiveOrder () | |
AdditiveOrder Natural | |
(AdditiveOrder a, AdditiveOrder b) => AdditiveOrder (a, b) | |
(AdditiveOrder a, AdditiveOrder b, AdditiveOrder c) => AdditiveOrder (a, b, c) | |
(AdditiveOrder a, AdditiveOrder b, AdditiveOrder c, AdditiveOrder d) => AdditiveOrder (a, b, c, d) | |
(AdditiveOrder a, AdditiveOrder b, AdditiveOrder c, AdditiveOrder d, AdditiveOrder e) => AdditiveOrder (a, b, c, d, e) |
class Order a => LocallyFiniteOrder a Source
Instances
class Monoidal r => DecidableZero r Source
Instances
DecidableZero Bool | |
DecidableZero Int | |
DecidableZero Int8 | |
DecidableZero Int16 | |
DecidableZero Int32 | |
DecidableZero Int64 | |
DecidableZero Integer | |
DecidableZero Word | |
DecidableZero Word8 | |
DecidableZero Word16 | |
DecidableZero Word32 | |
DecidableZero Word64 | |
DecidableZero () | |
DecidableZero Natural | |
DecidableZero (BasisCoblade m) | |
DecidableZero r => DecidableZero (Opposite r) | |
Euclidean d => DecidableZero (Fraction d) | |
(DecidableZero a, DecidableZero b) => DecidableZero (a, b) | |
(DecidableZero a, DecidableZero b, DecidableZero c) => DecidableZero (a, b, c) | |
(DecidableZero a, DecidableZero b, DecidableZero c, DecidableZero d) => DecidableZero (a, b, c, d) | |
(DecidableZero a, DecidableZero b, DecidableZero c, DecidableZero d, DecidableZero e) => DecidableZero (a, b, c, d, e) |
class Unital r => DecidableUnits r Source
Instances
DecidableUnits Bool | |
DecidableUnits Int | |
DecidableUnits Int8 | |
DecidableUnits Int16 | |
DecidableUnits Int32 | |
DecidableUnits Int64 | |
DecidableUnits Integer | |
DecidableUnits Word | |
DecidableUnits Word8 | |
DecidableUnits Word16 | |
DecidableUnits Word32 | |
DecidableUnits Word64 | |
DecidableUnits () | |
DecidableUnits Natural | |
DecidableUnits (BasisCoblade m) | |
DecidableUnits r => DecidableUnits (Opposite r) | |
Euclidean d => DecidableUnits (Fraction d) | |
(DecidableUnits a, DecidableUnits b) => DecidableUnits (a, b) | |
(DecidableUnits a, DecidableUnits b, DecidableUnits c) => DecidableUnits (a, b, c) | |
(DecidableUnits a, DecidableUnits b, DecidableUnits c, DecidableUnits d) => DecidableUnits (a, b, c, d) | |
(DecidableUnits a, DecidableUnits b, DecidableUnits c, DecidableUnits d, DecidableUnits e) => DecidableUnits (a, b, c, d, e) |
class Unital r => DecidableAssociates r Source
Instances
Natural numbers
data Natural
Instances
class Integral n => Whole n where
A refinement of Integral
to represent types that do not contain negative numbers.
Representable Additive
addRep :: (Applicative m, Additive r) => m r -> m r -> m rSource
`Additive.(+)` default definition
Representable Monoidal
zeroRep :: (Applicative m, Monoidal r) => m rSource
zero
default definition
Representable Group
minusRep :: (Applicative m, Group r) => m r -> m r -> m rSource
`Group.(-)` default definition
subtractRep :: (Applicative m, Group r) => m r -> m r -> m rSource
subtract
default definition
Representable Multiplicative (via Algebra)
mulRep :: (Representable m, Algebra r (Rep m)) => m r -> m r -> m rSource
`Multiplicative.(*)` default definition
Representable Unital (via UnitalAlgebra)
oneRep :: (Representable m, Unital r, UnitalAlgebra r (Rep m)) => m rSource
one
default definition
Representable Rig (via Algebra)
fromNaturalRep :: (UnitalAlgebra r (Rep m), Representable m, Rig r) => Natural -> m rSource
fromNatural
default definition
Representable Ring (via Algebra)
fromIntegerRep :: (UnitalAlgebra r (Rep m), Representable m, Ring r) => Integer -> m rSource
fromInteger
default definition
Norm
class Additive r => Quadrance r m whereSource
Instances
Covectors
Linear functionals from elements of an (infinite) free module to a scalar
Instances
Covectors as linear functionals
counitM :: UnitalAlgebra r a => a -> Covector r ()Source
unitM :: CounitalCoalgebra r c => Covector r cSource
invM :: InvolutiveAlgebra r h => h -> Covector r hSource
coinvM :: InvolutiveCoalgebra r h => h -> Covector r hSource
antipodeM :: HopfAlgebra r h => h -> Covector r hSource
convolveM antipodeM return = convolveM return antipodeM = comultM >=> uncurry joinM