| Safe Haskell | None |
|---|---|
| Language | Haskell2010 |
NumHask.Algebra.Ring
Description
Ring classes. A distinguishment is made between Rings and Commutative Rings.
Synopsis
- class (MultiplicativeAssociative a, MultiplicativeUnital a, Distribution a) => Semiring a
- class (Semiring a, AdditiveGroup a) => Ring a
- class (Multiplicative a, Ring a) => CRing a
- class Semiring a => StarSemiring a where
- class (StarSemiring a, AdditiveIdempotent a) => KleeneAlgebra a
- class Semiring a => InvolutiveRing a where
Documentation
class (MultiplicativeAssociative a, MultiplicativeUnital a, Distribution a) => Semiring a #
Semiring
Instances
class (Semiring a, AdditiveGroup a) => Ring a #
Ring
A Ring consists of a set equipped with two binary operations that generalize the arithmetic operations of addition and multiplication; it is an abelian group with a second binary operation that is associative, is distributive over the abelian group operation, and has an identity element.
Summary of the laws inherited from the ring super-classes:
zero + a == a a + zero == a (a + b) + c == a + (b + c) a + b == b + a a - a = zero negate a = zero - a negate a + a = zero a + negate a = zero one `times` a == a a `times` one == a (a `times` b) `times` c == a `times` (b `times` c) a `times` (b + c) == a `times` b + a `times` c (a + b) `times` c == a `times` c + b `times` c a `times` zero == zero zero `times` a == zero
Instances
| Ring Double # | |
Defined in NumHask.Algebra.Ring | |
| Ring Float # | |
Defined in NumHask.Algebra.Ring | |
| Ring Int # | |
Defined in NumHask.Algebra.Ring | |
| Ring Int8 # | |
Defined in NumHask.Algebra.Ring | |
| Ring Int16 # | |
Defined in NumHask.Algebra.Ring | |
| Ring Int32 # | |
Defined in NumHask.Algebra.Ring | |
| Ring Int64 # | |
Defined in NumHask.Algebra.Ring | |
| Ring Integer # | |
Defined in NumHask.Algebra.Ring | |
| Ring Word # | |
Defined in NumHask.Algebra.Ring | |
| Ring Word8 # | |
Defined in NumHask.Algebra.Ring | |
| Ring Word16 # | |
Defined in NumHask.Algebra.Ring | |
| Ring Word32 # | |
Defined in NumHask.Algebra.Ring | |
| Ring Word64 # | |
Defined in NumHask.Algebra.Ring | |
| Ring a => Ring (Complex a) # | |
Defined in NumHask.Algebra.Ring | |
| (Ord a, Signed a, Integral a, AdditiveGroup a) => Ring (Ratio a) # | |
Defined in NumHask.Algebra.Rational | |
| (Semiring a, AdditiveGroup a) => Ring (Complex a) # | |
Defined in NumHask.Data.Complex | |
class (Multiplicative a, Ring a) => CRing a #
CRing is a Ring with Multiplicative Commutation. It arises often due to * being defined as a multiplicative commutative operation.
Instances
| CRing Double # | |
Defined in NumHask.Algebra.Ring | |
| CRing Float # | |
Defined in NumHask.Algebra.Ring | |
| CRing Int # | |
Defined in NumHask.Algebra.Ring | |
| CRing Int8 # | |
Defined in NumHask.Algebra.Ring | |
| CRing Int16 # | |
Defined in NumHask.Algebra.Ring | |
| CRing Int32 # | |
Defined in NumHask.Algebra.Ring | |
| CRing Int64 # | |
Defined in NumHask.Algebra.Ring | |
| CRing Integer # | |
Defined in NumHask.Algebra.Ring | |
| CRing Word # | |
Defined in NumHask.Algebra.Ring | |
| CRing Word8 # | |
Defined in NumHask.Algebra.Ring | |
| CRing Word16 # | |
Defined in NumHask.Algebra.Ring | |
| CRing Word32 # | |
Defined in NumHask.Algebra.Ring | |
| CRing Word64 # | |
Defined in NumHask.Algebra.Ring | |
| CRing a => CRing (Complex a) # | |
Defined in NumHask.Algebra.Ring | |
| (Ord a, Signed a, Integral a, Multiplicative a, Ring a) => CRing (Ratio a) # | |
Defined in NumHask.Algebra.Rational | |
| (MultiplicativeAssociative a, MultiplicativeUnital a, AdditiveGroup a, Semiring a) => CRing (Complex a) # | |
Defined in NumHask.Data.Complex | |
class Semiring a => StarSemiring a where #
StarSemiring
star a = one + a `times` star a
class (StarSemiring a, AdditiveIdempotent a) => KleeneAlgebra a #
KleeneAlgebra
a `times` x + x = a ==> star a `times` x + x = x x `times` a + x = a ==> x `times` star a + x = x
class Semiring a => InvolutiveRing a where #
Involutive Ring
adj (a + b) ==> adj a + adj b adj (a * b) ==> adj a * adj b adj one ==> one adj (adj a) ==> a
Note: elements for which adj a == a are called "self-adjoint".