numhask-0.2.3.1: numeric classes

Safe HaskellNone
LanguageHaskell2010

NumHask.Algebra.Ring

Description

Ring classes. A distinguishment is made between Rings and Commutative Rings.

Synopsis

Documentation

class (MultiplicativeAssociative a, MultiplicativeUnital a, Distribution a) => Semiring a #

Semiring

Instances
Semiring Bool # 
Instance details

Defined in NumHask.Algebra.Ring

Semiring Double # 
Instance details

Defined in NumHask.Algebra.Ring

Semiring Float # 
Instance details

Defined in NumHask.Algebra.Ring

Semiring Int # 
Instance details

Defined in NumHask.Algebra.Ring

Semiring Int8 # 
Instance details

Defined in NumHask.Algebra.Ring

Semiring Int16 # 
Instance details

Defined in NumHask.Algebra.Ring

Semiring Int32 # 
Instance details

Defined in NumHask.Algebra.Ring

Semiring Int64 # 
Instance details

Defined in NumHask.Algebra.Ring

Semiring Integer # 
Instance details

Defined in NumHask.Algebra.Ring

Semiring Natural # 
Instance details

Defined in NumHask.Algebra.Ring

Semiring Word # 
Instance details

Defined in NumHask.Algebra.Ring

Semiring Word8 # 
Instance details

Defined in NumHask.Algebra.Ring

Semiring Word16 # 
Instance details

Defined in NumHask.Algebra.Ring

Semiring Word32 # 
Instance details

Defined in NumHask.Algebra.Ring

Semiring Word64 # 
Instance details

Defined in NumHask.Algebra.Ring

(AdditiveGroup a, Semiring a) => Semiring (Complex a) # 
Instance details

Defined in NumHask.Algebra.Ring

(Ord a, Signed a, Integral a, AdditiveInvertible a) => Semiring (Ratio a) # 
Instance details

Defined in NumHask.Algebra.Rational

(Semiring a, AdditiveGroup a) => Semiring (Complex a) # 
Instance details

Defined in NumHask.Data.Complex

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 # 
Instance details

Defined in NumHask.Algebra.Ring

Ring Float # 
Instance details

Defined in NumHask.Algebra.Ring

Ring Int # 
Instance details

Defined in NumHask.Algebra.Ring

Ring Int8 # 
Instance details

Defined in NumHask.Algebra.Ring

Ring Int16 # 
Instance details

Defined in NumHask.Algebra.Ring

Ring Int32 # 
Instance details

Defined in NumHask.Algebra.Ring

Ring Int64 # 
Instance details

Defined in NumHask.Algebra.Ring

Ring Integer # 
Instance details

Defined in NumHask.Algebra.Ring

Ring Word # 
Instance details

Defined in NumHask.Algebra.Ring

Ring Word8 # 
Instance details

Defined in NumHask.Algebra.Ring

Ring Word16 # 
Instance details

Defined in NumHask.Algebra.Ring

Ring Word32 # 
Instance details

Defined in NumHask.Algebra.Ring

Ring Word64 # 
Instance details

Defined in NumHask.Algebra.Ring

Ring a => Ring (Complex a) # 
Instance details

Defined in NumHask.Algebra.Ring

(Ord a, Signed a, Integral a, AdditiveGroup a) => Ring (Ratio a) # 
Instance details

Defined in NumHask.Algebra.Rational

(Semiring a, AdditiveGroup a) => Ring (Complex a) # 
Instance details

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 # 
Instance details

Defined in NumHask.Algebra.Ring

CRing Float # 
Instance details

Defined in NumHask.Algebra.Ring

CRing Int # 
Instance details

Defined in NumHask.Algebra.Ring

CRing Int8 # 
Instance details

Defined in NumHask.Algebra.Ring

CRing Int16 # 
Instance details

Defined in NumHask.Algebra.Ring

CRing Int32 # 
Instance details

Defined in NumHask.Algebra.Ring

CRing Int64 # 
Instance details

Defined in NumHask.Algebra.Ring

CRing Integer # 
Instance details

Defined in NumHask.Algebra.Ring

CRing Word # 
Instance details

Defined in NumHask.Algebra.Ring

CRing Word8 # 
Instance details

Defined in NumHask.Algebra.Ring

CRing Word16 # 
Instance details

Defined in NumHask.Algebra.Ring

CRing Word32 # 
Instance details

Defined in NumHask.Algebra.Ring

CRing Word64 # 
Instance details

Defined in NumHask.Algebra.Ring

CRing a => CRing (Complex a) # 
Instance details

Defined in NumHask.Algebra.Ring

(Ord a, Signed a, Integral a, Multiplicative a, Ring a) => CRing (Ratio a) # 
Instance details

Defined in NumHask.Algebra.Rational

(MultiplicativeAssociative a, MultiplicativeUnital a, AdditiveGroup a, Semiring a) => CRing (Complex a) # 
Instance details

Defined in NumHask.Data.Complex

class Semiring a => StarSemiring a where #

StarSemiring

star a = one + a `times` star a

Methods

star :: a -> a #

plus' :: a -> 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".

Methods

adj :: a -> a #

Instances
InvolutiveRing Double # 
Instance details

Defined in NumHask.Algebra.Ring

Methods

adj :: Double -> Double #

InvolutiveRing Float # 
Instance details

Defined in NumHask.Algebra.Ring

Methods

adj :: Float -> Float #

InvolutiveRing Int # 
Instance details

Defined in NumHask.Algebra.Ring

Methods

adj :: Int -> Int #

InvolutiveRing Int8 # 
Instance details

Defined in NumHask.Algebra.Ring

Methods

adj :: Int8 -> Int8 #

InvolutiveRing Int16 # 
Instance details

Defined in NumHask.Algebra.Ring

Methods

adj :: Int16 -> Int16 #

InvolutiveRing Int32 # 
Instance details

Defined in NumHask.Algebra.Ring

Methods

adj :: Int32 -> Int32 #

InvolutiveRing Int64 # 
Instance details

Defined in NumHask.Algebra.Ring

Methods

adj :: Int64 -> Int64 #

InvolutiveRing Integer # 
Instance details

Defined in NumHask.Algebra.Ring

Methods

adj :: Integer -> Integer #

InvolutiveRing Natural # 
Instance details

Defined in NumHask.Algebra.Ring

Methods

adj :: Natural -> Natural #

InvolutiveRing Word # 
Instance details

Defined in NumHask.Algebra.Ring

Methods

adj :: Word -> Word #

InvolutiveRing Word8 # 
Instance details

Defined in NumHask.Algebra.Ring

Methods

adj :: Word8 -> Word8 #

InvolutiveRing Word16 # 
Instance details

Defined in NumHask.Algebra.Ring

Methods

adj :: Word16 -> Word16 #

InvolutiveRing Word32 # 
Instance details

Defined in NumHask.Algebra.Ring

Methods

adj :: Word32 -> Word32 #

InvolutiveRing Word64 # 
Instance details

Defined in NumHask.Algebra.Ring

Methods

adj :: Word64 -> Word64 #

Ring a => InvolutiveRing (Complex a) # 
Instance details

Defined in NumHask.Algebra.Ring

Methods

adj :: Complex a -> Complex a #

(Ord a, Signed a, Integral a, Multiplicative a, Ring a) => InvolutiveRing (Ratio a) # 
Instance details

Defined in NumHask.Algebra.Rational

Methods

adj :: Ratio a -> Ratio a #

(Semiring a, AdditiveGroup a) => InvolutiveRing (Complex a) # 
Instance details

Defined in NumHask.Data.Complex

Methods

adj :: Complex a -> Complex a #