| Safe Haskell | Safe |
|---|---|
| Language | Haskell98 |
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
Synopsis
- 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
- 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
- product1 :: (Foldable1 f, Multiplicative r) => f r -> r
- class Multiplicative r => Commutative r
- class Multiplicative r => Unital r where
- product :: (Foldable f, Unital r) => f r -> r
- class Multiplicative r => Band r
- pow1pBand :: r -> Natural -> r
- powBand :: Unital r => r -> Natural -> r
- class Unital r => Division r where
- class Multiplicative m => Factorable m where
- class Multiplicative r => InvolutiveMultiplication r where
- 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
- class (Rig r, Rng r) => Ring r where
- class Ring r => LocalRing r
- class (Division r, Ring r) => DivisionRing r
- class (Euclidean d, Division d) => Field d
- class (Semiring r, Additive m) => LeftModule r m where
- class (Semiring r, Additive m) => RightModule r m where
- class (LeftModule r m, RightModule r m) => Module r m
- class Semiring r => Algebra r a where
- class Semiring r => Coalgebra r c where
- class Algebra r a => UnitalAlgebra r a where
- class Coalgebra r c => CounitalCoalgebra r c where
- class (UnitalAlgebra r a, CounitalCoalgebra r a) => Bialgebra r a
- class (InvolutiveSemiring r, Algebra r a) => InvolutiveAlgebra r a where
- class (InvolutiveSemiring r, Coalgebra r c) => InvolutiveCoalgebra r c where
- 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
- class Bialgebra r h => HopfAlgebra r h where
- class Rig r => Characteristic r where
- charInt :: (Integral s, Bounded s) => proxy s -> Natural
- charWord :: (Integral 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
- addRep :: (Applicative m, Additive r) => m r -> m r -> m r
- sinnum1pRep :: (Functor m, Additive r) => Natural -> m r -> m r
- zeroRep :: (Applicative m, Monoidal r) => m r
- sinnumRep :: (Functor m, Monoidal r) => Natural -> 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
- 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
Minimal complete definition
Instances
additive Abelian semigroups
class Additive r => Abelian r #
an additive abelian semigroup
a + b = b + a
Instances
additive idempotent semigroups
class Additive r => Idempotent r #
An additive semigroup with idempotent addition.
a + a = a
Instances
sinnum1pIdempotent :: Natural -> r -> r #
sinnumIdempotent :: (Integral n, Idempotent r, Monoidal r) => n -> r -> r #
partitionable additive semigroups
class Additive m => Partitionable m where #
Minimal complete definition
Methods
partitionWith :: (m -> m -> r) -> m -> NonEmpty r #
partitionWith f c returns a list containing f a b for each a b such that a + b = c,
Instances
additive monoids
class (LeftModule Natural m, RightModule Natural m) => Monoidal m where #
An additive monoid
zero + a = a = a + zero
Minimal complete definition
Instances
additive groups
class (LeftModule Integer r, RightModule Integer r, Monoidal r) => Group r where #
Methods
Instances
Multiplicative
multiplicative semigroups
class Multiplicative r where #
A multiplicative semigroup
Minimal complete definition
Instances
product1 :: (Foldable1 f, Multiplicative r) => f r -> r #
commutative multiplicative semigroups
class Multiplicative r => Commutative r #
A commutative multiplicative semigroup
Instances
multiplicative monoids
class Multiplicative r => Unital r where #
Minimal complete definition
Instances
idempotent multiplicative semigroups
class Multiplicative r => Band r #
An multiplicative semigroup with idempotent multiplication.
a * a = a
Instances
| Band Bool # | |
Defined in Numeric.Algebra.Idempotent | |
| Band () # | |
Defined in Numeric.Algebra.Idempotent | |
| Band r => Band (Opposite r) # | |
Defined in Numeric.Ring.Opposite | |
| Idempotent r => Band (Exp r) # | |
Defined in Numeric.Exp | |
| (Band a, Band b) => Band (a, b) # | |
Defined in Numeric.Algebra.Idempotent | |
| Band (Rect i j) # | |
Defined in Numeric.Band.Rectangular | |
| (Idempotent r, IdempotentCoalgebra r a) => Band (Covector r a) # | |
Defined in Numeric.Covector | |
| (Band a, Band b, Band c) => Band (a, b, c) # | |
Defined in Numeric.Algebra.Idempotent | |
| (Band a, Band b, Band c, Band d) => Band (a, b, c, d) # | |
Defined in Numeric.Algebra.Idempotent | |
| (Band a, Band b, Band c, Band d, Band e) => Band (a, b, c, d, e) # | |
Defined in Numeric.Algebra.Idempotent | |
multiplicative groups
class Unital r => Division r where #
Instances
factorable multiplicative semigroups
class Multiplicative m => Factorable m where #
`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.
Minimal complete definition
Methods
factorWith :: (m -> m -> r) -> m -> NonEmpty r #
Instances
| Factorable Bool # | |
Defined in Numeric.Algebra.Factorable | |
| Factorable () # | |
Defined in Numeric.Algebra.Factorable Methods factorWith :: (() -> () -> r) -> () -> NonEmpty r # | |
| Partitionable r => Factorable (Exp r) # | |
Defined in Numeric.Exp | |
| (Factorable a, Factorable b) => Factorable (a, b) # | |
Defined in Numeric.Algebra.Factorable Methods factorWith :: ((a, b) -> (a, b) -> r) -> (a, b) -> NonEmpty r # | |
| (Factorable a, Factorable b, Factorable c) => Factorable (a, b, c) # | |
Defined in Numeric.Algebra.Factorable Methods factorWith :: ((a, b, c) -> (a, b, c) -> r) -> (a, b, c) -> NonEmpty r # | |
| (Factorable a, Factorable b, Factorable c, Factorable d) => Factorable (a, b, c, d) # | |
Defined in Numeric.Algebra.Factorable Methods factorWith :: ((a, b, c, d) -> (a, b, c, d) -> r) -> (a, b, c, d) -> NonEmpty r # | |
| (Factorable a, Factorable b, Factorable c, Factorable d, Factorable e) => Factorable (a, b, c, d, e) # | |
Defined in Numeric.Algebra.Factorable Methods factorWith :: ((a, b, c, d, e) -> (a, b, c, d, e) -> r) -> (a, b, c, d, e) -> NonEmpty r # | |
involutive multiplicative semigroups
class Multiplicative r => InvolutiveMultiplication r where #
An semigroup with involution
adjoint a * adjoint b = adjoint (b * a)
Minimal complete definition
Instances
class (Commutative r, InvolutiveMultiplication r) => TriviallyInvolutive r #
adjoint = id
Instances
Ring-Structures
Semirings
class (Additive r, Abelian r, Multiplicative r) => Semiring r #
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 #
adjoint (x + y) = adjoint x + adjoint y
Instances
class (Semiring r, Idempotent r) => Dioid r #
Instances
| (Semiring r, Idempotent r) => Dioid r # | |
Defined in Numeric.Dioid.Class | |
Rngs
Rigs
class (Semiring r, Unital r, Monoidal r) => Rig r where #
A Ring without (n)egation
Methods
fromNatural :: Natural -> r #
Instances
Rings
class (Rig r, Rng r) => Ring r where #
Methods
fromInteger :: Integer -> r #
Instances
Division Rings
class (Division r, Ring r) => DivisionRing r #
Instances
| (Division r, Ring r) => DivisionRing r # | |
Defined in Numeric.Ring.Division | |
class (Euclidean d, Division d) => Field d #
Instances
| (Euclidean d, Division d) => Field d # | |
Defined in Numeric.Field.Class | |
Modules
class (Semiring r, Additive m) => LeftModule r m where #
Minimal complete definition
Instances
class (Semiring r, Additive m) => RightModule r m where #
Minimal complete definition
Instances
class (LeftModule r m, RightModule r m) => Module r m #
Instances
| (LeftModule r m, RightModule r m) => Module r m # | |
Defined in Numeric.Algebra.Class | |
Algebras
associative algebras over (non-commutative) semirings
class Semiring r => Algebra r a where #
An associative algebra built with a free module over a semiring
Minimal complete definition
Instances
class Semiring r => Coalgebra r c where #
Minimal complete definition
Instances
| Semiring r => Coalgebra r IntSet # | the free commutative band coalgebra over Int |
| Semiring r => Coalgebra r () # | |
Defined in Numeric.Algebra.Class | |
| (Commutative k, Rng k) => Coalgebra k TrigBasis # | |
| (TriviallyInvolutive r, Rng r) => Coalgebra r QuaternionBasis' # | dual quaternion comultiplication |
Defined in Numeric.Coalgebra.Quaternion Methods comult :: (QuaternionBasis' -> r) -> QuaternionBasis' -> QuaternionBasis' -> r # | |
| (Commutative k, Semiring k) => Coalgebra k HyperBasis # | the hyperbolic trigonometric coalgebra |
Defined in Numeric.Coalgebra.Hyperbolic Methods comult :: (HyperBasis -> k) -> HyperBasis -> HyperBasis -> k # | |
| Rng k => Coalgebra k DualBasis' # | |
Defined in Numeric.Coalgebra.Dual Methods comult :: (DualBasis' -> k) -> DualBasis' -> DualBasis' -> k # | |
| (TriviallyInvolutive r, Rng r) => Coalgebra r QuaternionBasis # | the trivial diagonal coalgebra |
Defined in Numeric.Algebra.Quaternion Methods comult :: (QuaternionBasis -> r) -> QuaternionBasis -> QuaternionBasis -> r # | |
| (Commutative k, Monoidal k, Semiring k) => Coalgebra k HyperBasis' # | |
Defined in Numeric.Algebra.Hyperbolic Methods comult :: (HyperBasis' -> k) -> HyperBasis' -> HyperBasis' -> k # | |
| Rng k => Coalgebra k DualBasis # | |
| Rng k => Coalgebra k ComplexBasis # | |
Defined in Numeric.Algebra.Complex Methods comult :: (ComplexBasis -> k) -> ComplexBasis -> ComplexBasis -> k # | |
| (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 |
Defined in Numeric.Algebra.Class | |
| (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) # | |
Defined in Numeric.Coalgebra.Geometric Methods comult :: (BasisCoblade m -> r) -> BasisCoblade m -> BasisCoblade m -> r # | |
| (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) # | |
Defined in Numeric.Algebra.Class | |
| 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. |
Defined in Numeric.Algebra.Class | |
| (Coalgebra r a, Coalgebra r b, Coalgebra r c) => Coalgebra r (a, b, c) # | |
Defined in Numeric.Algebra.Class | |
| (Coalgebra r a, Coalgebra r b, Coalgebra r c, Coalgebra r d) => Coalgebra r (a, b, c, d) # | |
Defined in Numeric.Algebra.Class | |
| (Coalgebra r a, Coalgebra r b, Coalgebra r c, Coalgebra r d, Coalgebra r e) => Coalgebra r (a, b, c, d, e) # | |
Defined in Numeric.Algebra.Class | |
unital algebras
class Algebra r a => UnitalAlgebra r a where #
An associative unital algebra over a semiring, built using a free module
Minimal complete definition
Instances
class Coalgebra r c => CounitalCoalgebra r c where #
Minimal complete definition
Instances
class (UnitalAlgebra r a, CounitalCoalgebra r a) => Bialgebra r a #
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
involutive algebras
class (InvolutiveSemiring r, Algebra r a) => InvolutiveAlgebra r a where #
Minimal complete definition
Instances
class (InvolutiveSemiring r, Coalgebra r c) => InvolutiveCoalgebra r c where #
Minimal complete definition
Instances
class (Bialgebra r h, InvolutiveAlgebra r h, InvolutiveCoalgebra r h) => InvolutiveBialgebra r h #
Instances
| (Bialgebra r h, InvolutiveAlgebra r h, InvolutiveCoalgebra r h) => InvolutiveBialgebra r h # | |
Defined in Numeric.Algebra.Involutive | |
class (CommutativeAlgebra r a, TriviallyInvolutive r, InvolutiveAlgebra r a) => TriviallyInvolutiveAlgebra r a #
Instances
| (TriviallyInvolutive r, InvolutiveSemiring r) => TriviallyInvolutiveAlgebra r () # | |
Defined in Numeric.Algebra.Involutive | |
| (TriviallyInvolutiveAlgebra r a, TriviallyInvolutiveAlgebra r b) => TriviallyInvolutiveAlgebra r (a, b) # | |
Defined in Numeric.Algebra.Involutive | |
| (TriviallyInvolutiveAlgebra r a, TriviallyInvolutiveAlgebra r b, TriviallyInvolutiveAlgebra r c) => TriviallyInvolutiveAlgebra r (a, b, c) # | |
Defined in Numeric.Algebra.Involutive | |
| (TriviallyInvolutiveAlgebra r a, TriviallyInvolutiveAlgebra r b, TriviallyInvolutiveAlgebra r c, TriviallyInvolutiveAlgebra r d) => TriviallyInvolutiveAlgebra r (a, b, c, d) # | |
Defined in Numeric.Algebra.Involutive | |
| (TriviallyInvolutiveAlgebra r a, TriviallyInvolutiveAlgebra r b, TriviallyInvolutiveAlgebra r c, TriviallyInvolutiveAlgebra r d, TriviallyInvolutiveAlgebra r e) => TriviallyInvolutiveAlgebra r (a, b, c, d, e) # | |
Defined in Numeric.Algebra.Involutive | |
class (CocommutativeCoalgebra r a, TriviallyInvolutive r, InvolutiveCoalgebra r a) => TriviallyInvolutiveCoalgebra r a #
Instances
| (TriviallyInvolutive r, InvolutiveSemiring r) => TriviallyInvolutiveCoalgebra r () # | |
Defined in Numeric.Algebra.Involutive | |
| (TriviallyInvolutiveCoalgebra r a, TriviallyInvolutiveCoalgebra r b) => TriviallyInvolutiveCoalgebra r (a, b) # | |
Defined in Numeric.Algebra.Involutive | |
| (TriviallyInvolutiveCoalgebra r a, TriviallyInvolutiveCoalgebra r b, TriviallyInvolutiveCoalgebra r c) => TriviallyInvolutiveCoalgebra r (a, b, c) # | |
Defined in Numeric.Algebra.Involutive | |
| (TriviallyInvolutiveCoalgebra r a, TriviallyInvolutiveCoalgebra r b, TriviallyInvolutiveCoalgebra r c, TriviallyInvolutiveCoalgebra r d) => TriviallyInvolutiveCoalgebra r (a, b, c, d) # | |
Defined in Numeric.Algebra.Involutive | |
| (TriviallyInvolutiveCoalgebra r a, TriviallyInvolutiveCoalgebra r b, TriviallyInvolutiveCoalgebra r c, TriviallyInvolutiveCoalgebra r d, TriviallyInvolutiveCoalgebra r e) => TriviallyInvolutiveCoalgebra r (a, b, c, d, e) # | |
Defined in Numeric.Algebra.Involutive | |
class (InvolutiveBialgebra r h, TriviallyInvolutiveAlgebra r h, TriviallyInvolutiveCoalgebra r h) => TriviallyInvolutiveBialgebra r h #
Instances
| (InvolutiveBialgebra r h, TriviallyInvolutiveAlgebra r h, TriviallyInvolutiveCoalgebra r h) => TriviallyInvolutiveBialgebra r h # | |
Defined in Numeric.Algebra.Involutive | |
idempotent algebras
class Algebra r a => IdempotentAlgebra r a #
Instances
| (Semiring r, Band r) => IdempotentAlgebra r () # | |
Defined in Numeric.Algebra.Idempotent | |
| (Semiring r, Band r) => IdempotentAlgebra r IntSet # | |
Defined in Numeric.Algebra.Idempotent | |
| (Semiring r, Band r, Ord a) => IdempotentAlgebra r (Set a) # | |
Defined in Numeric.Algebra.Idempotent | |
| (IdempotentAlgebra r a, IdempotentAlgebra r b) => IdempotentAlgebra r (a, b) # | |
Defined in Numeric.Algebra.Idempotent | |
| (IdempotentAlgebra r a, IdempotentAlgebra r b, IdempotentAlgebra r c) => IdempotentAlgebra r (a, b, c) # | |
Defined in Numeric.Algebra.Idempotent | |
| (IdempotentAlgebra r a, IdempotentAlgebra r b, IdempotentAlgebra r c, IdempotentAlgebra r d) => IdempotentAlgebra r (a, b, c, d) # | |
Defined in Numeric.Algebra.Idempotent | |
| (IdempotentAlgebra r a, IdempotentAlgebra r b, IdempotentAlgebra r c, IdempotentAlgebra r d, IdempotentAlgebra r e) => IdempotentAlgebra r (a, b, c, d, e) # | |
Defined in Numeric.Algebra.Idempotent | |
class (Bialgebra r h, IdempotentAlgebra r h, IdempotentCoalgebra r h) => IdempotentBialgebra r h #
Instances
| (Bialgebra r h, IdempotentAlgebra r h, IdempotentCoalgebra r h) => IdempotentBialgebra r h # | |
Defined in Numeric.Algebra.Idempotent | |
commutative algebras
class Algebra r a => CommutativeAlgebra r a #
Instances
| (Commutative r, Semiring r) => CommutativeAlgebra r IntSet # | |
Defined in Numeric.Algebra.Commutative | |
| (Commutative r, Semiring r) => CommutativeAlgebra r () # | |
Defined in Numeric.Algebra.Commutative | |
| (Commutative r, Semiring r, Ord a) => CommutativeAlgebra r (Set a) # | |
Defined in Numeric.Algebra.Commutative | |
| (CommutativeAlgebra r a, CommutativeAlgebra r b) => CommutativeAlgebra r (a, b) # | |
Defined in Numeric.Algebra.Commutative | |
| (CommutativeAlgebra r a, CommutativeAlgebra r b, CommutativeAlgebra r c) => CommutativeAlgebra r (a, b, c) # | |
Defined in Numeric.Algebra.Commutative | |
| (CommutativeAlgebra r a, CommutativeAlgebra r b, CommutativeAlgebra r c, CommutativeAlgebra r d) => CommutativeAlgebra r (a, b, c, d) # | |
Defined in Numeric.Algebra.Commutative | |
| (CommutativeAlgebra r a, CommutativeAlgebra r b, CommutativeAlgebra r c, CommutativeAlgebra r d, CommutativeAlgebra r e) => CommutativeAlgebra r (a, b, c, d, e) # | |
Defined in Numeric.Algebra.Commutative | |
class (Bialgebra r h, CommutativeAlgebra r h, CocommutativeCoalgebra r h) => CommutativeBialgebra r h #
Instances
| (Bialgebra r h, CommutativeAlgebra r h, CocommutativeCoalgebra r h) => CommutativeBialgebra r h # | |
Defined in Numeric.Algebra.Commutative | |
class Coalgebra r c => CocommutativeCoalgebra r c #
Instances
division algebras
class UnitalAlgebra r a => DivisionAlgebra r a where #
Minimal complete definition
Methods
recipriocal :: (a -> r) -> a -> r #
Hopf alegebras
class Bialgebra r h => HopfAlgebra r h where #
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
Minimal complete definition
Instances
Ring Properties
Characteristic
class Rig r => Characteristic r where #
Minimal complete definition
Instances
Order
Instances
| Order Bool # | |
| Order Int # | |
| Order Int8 # | |
| Order Int16 # | |
Defined in Numeric.Order.Class | |
| Order Int32 # | |
Defined in Numeric.Order.Class | |
| Order Int64 # | |
Defined in Numeric.Order.Class | |
| Order Integer # | |
Defined in Numeric.Order.Class Methods (<~) :: Integer -> Integer -> Bool # (<) :: Integer -> Integer -> Bool # (>~) :: Integer -> Integer -> Bool # (>) :: Integer -> Integer -> Bool # (~~) :: Integer -> Integer -> Bool # (/~) :: Integer -> Integer -> Bool # order :: Integer -> Integer -> Maybe Ordering # comparable :: Integer -> Integer -> Bool # | |
| Order Natural # | |
Defined in Numeric.Order.Class Methods (<~) :: Natural -> Natural -> Bool # (<) :: Natural -> Natural -> Bool # (>~) :: Natural -> Natural -> Bool # (>) :: Natural -> Natural -> Bool # (~~) :: Natural -> Natural -> Bool # (/~) :: Natural -> Natural -> Bool # order :: Natural -> Natural -> Maybe Ordering # comparable :: Natural -> Natural -> Bool # | |
| Order Word # | |
| Order Word8 # | |
Defined in Numeric.Order.Class | |
| Order Word16 # | |
Defined in Numeric.Order.Class | |
| Order Word32 # | |
Defined in Numeric.Order.Class | |
| Order Word64 # | |
Defined in Numeric.Order.Class | |
| Order () # | |
| Ord a => Order (Set a) # | |
Defined in Numeric.Order.Class | |
| (Order a, Order b) => Order (a, b) # | |
Defined in Numeric.Order.Class | |
| (Order a, Order b, Order c) => Order (a, b, c) # | |
Defined in Numeric.Order.Class Methods (<~) :: (a, b, c) -> (a, b, c) -> Bool # (<) :: (a, b, c) -> (a, b, c) -> Bool # (>~) :: (a, b, c) -> (a, b, c) -> Bool # (>) :: (a, b, c) -> (a, b, c) -> Bool # (~~) :: (a, b, c) -> (a, b, c) -> Bool # (/~) :: (a, b, c) -> (a, b, c) -> Bool # order :: (a, b, c) -> (a, b, c) -> Maybe Ordering # comparable :: (a, b, c) -> (a, b, c) -> Bool # | |
| (Order a, Order b, Order c, Order d) => Order (a, b, c, d) # | |
Defined in Numeric.Order.Class Methods (<~) :: (a, b, c, d) -> (a, b, c, d) -> Bool # (<) :: (a, b, c, d) -> (a, b, c, d) -> Bool # (>~) :: (a, b, c, d) -> (a, b, c, d) -> Bool # (>) :: (a, b, c, d) -> (a, b, c, d) -> Bool # (~~) :: (a, b, c, d) -> (a, b, c, d) -> Bool # (/~) :: (a, b, c, d) -> (a, b, c, d) -> Bool # order :: (a, b, c, d) -> (a, b, c, d) -> Maybe Ordering # comparable :: (a, b, c, d) -> (a, b, c, d) -> Bool # | |
| (Order a, Order b, Order c, Order d, Order e) => Order (a, b, c, d, e) # | |
Defined in Numeric.Order.Class Methods (<~) :: (a, b, c, d, e) -> (a, b, c, d, e) -> Bool # (<) :: (a, b, c, d, e) -> (a, b, c, d, e) -> Bool # (>~) :: (a, b, c, d, e) -> (a, b, c, d, e) -> Bool # (>) :: (a, b, c, d, e) -> (a, b, c, d, e) -> Bool # (~~) :: (a, b, c, d, e) -> (a, b, c, d, e) -> Bool # (/~) :: (a, b, c, d, e) -> (a, b, c, d, e) -> Bool # order :: (a, b, c, d, e) -> (a, b, c, d, e) -> Maybe Ordering # comparable :: (a, b, c, d, e) -> (a, b, c, d, e) -> Bool # | |
class (AdditiveOrder r, Rig r) => OrderedRig r #
Instances
| OrderedRig Bool # | |
Defined in Numeric.Rig.Ordered | |
| OrderedRig Integer # | |
Defined in Numeric.Rig.Ordered | |
| OrderedRig Natural # | |
Defined in Numeric.Rig.Ordered | |
| OrderedRig () # | |
Defined in Numeric.Rig.Ordered | |
| (OrderedRig a, OrderedRig b) => OrderedRig (a, b) # | |
Defined in Numeric.Rig.Ordered | |
| (OrderedRig a, OrderedRig b, OrderedRig c) => OrderedRig (a, b, c) # | |
Defined in Numeric.Rig.Ordered | |
| (OrderedRig a, OrderedRig b, OrderedRig c, OrderedRig d) => OrderedRig (a, b, c, d) # | |
Defined in Numeric.Rig.Ordered | |
| (OrderedRig a, OrderedRig b, OrderedRig c, OrderedRig d, OrderedRig e) => OrderedRig (a, b, c, d, e) # | |
Defined in Numeric.Rig.Ordered | |
class (Additive r, Order r) => AdditiveOrder r #
z + x <= z + y = x <= y = x + z <= y + z
Instances
| AdditiveOrder Bool # | |
Defined in Numeric.Order.Additive | |
| AdditiveOrder Integer # | |
Defined in Numeric.Order.Additive | |
| AdditiveOrder Natural # | |
Defined in Numeric.Order.Additive | |
| AdditiveOrder () # | |
Defined in Numeric.Order.Additive | |
| (AdditiveOrder a, AdditiveOrder b) => AdditiveOrder (a, b) # | |
Defined in Numeric.Order.Additive | |
| (AdditiveOrder a, AdditiveOrder b, AdditiveOrder c) => AdditiveOrder (a, b, c) # | |
Defined in Numeric.Order.Additive | |
| (AdditiveOrder a, AdditiveOrder b, AdditiveOrder c, AdditiveOrder d) => AdditiveOrder (a, b, c, d) # | |
Defined in Numeric.Order.Additive | |
| (AdditiveOrder a, AdditiveOrder b, AdditiveOrder c, AdditiveOrder d, AdditiveOrder e) => AdditiveOrder (a, b, c, d, e) # | |
Defined in Numeric.Order.Additive | |
class Order a => LocallyFiniteOrder a #
Instances
class Monoidal r => DecidableZero r #
Minimal complete definition
Instances
class Unital r => DecidableUnits r #
Minimal complete definition
Instances
class Unital r => DecidableAssociates r #
Minimal complete definition
Instances
Natural numbers
Type representing arbitrary-precision non-negative integers.
>>>2^20 :: Natural1267650600228229401496703205376
Operations whose result would be negative ,throw (Underflow :: ArithException)
>>>-1 :: Natural*** Exception: arithmetic underflow
Since: base-4.8.0.0
Instances
Representable Additive
addRep :: (Applicative m, Additive r) => m r -> m r -> m r #
`Additive.(+)` default definition
Representable Monoidal
zeroRep :: (Applicative m, Monoidal r) => m r #
zero default definition
Representable Group
minusRep :: (Applicative m, Group r) => m r -> m r -> m r #
`Group.(-)` default definition
subtractRep :: (Applicative m, Group r) => m r -> m r -> m r #
subtract default definition
Representable Multiplicative (via Algebra)
mulRep :: (Representable m, Algebra r (Rep m)) => m r -> m r -> m r #
`Multiplicative.(*)` default definition
Representable Unital (via UnitalAlgebra)
oneRep :: (Representable m, Unital r, UnitalAlgebra r (Rep m)) => m r #
one default definition
Representable Rig (via Algebra)
fromNaturalRep :: (UnitalAlgebra r (Rep m), Representable m, Rig r) => Natural -> m r #
fromNatural default definition
Representable Ring (via Algebra)
fromIntegerRep :: (UnitalAlgebra r (Rep m), Representable m, Ring r) => Integer -> m r #
fromInteger default definition
Norm
class Additive r => Quadrance r m where #
Minimal complete definition
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 () #
unitM :: CounitalCoalgebra r 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 antipodeM return = convolveM return antipodeM = comultM >=> uncurry joinM