algebra-simple
Safe HaskellNone
LanguageHaskell2010

Numeric.Algebra.Rings.Semiring

Description

Provides the Semiring typeclass.

Since: 0.1

Synopsis

Documentation

class (Demiring r, Hemiring r) => Semiring r Source #

Defines a semiring i.e. a structure that is both an Hemiring and Demiring. In other words, a structure that is both an additive and multiplicative monoid.

Examples:

Expand
  • \( \mathbb{Z}^{+} \), the non-negative integers.
>>> :{
  -- Addition
  f1 :: (Semiring r) => r -> r
  f1 x = x .+. x
:}
>>> f1 5
10
>>> :{
  -- Zero
  f2 :: (Semiring r) => r -> r
  f2 x = x .+. zero
:}
>>> f2 5
5
>>> :{
  -- Multiplication
  f3 :: (Semiring r) => r -> r
  f3 x = x .*. x
:}
>>> f3 5
25
>>> :{
  -- One
  f4 :: (Semiring r) => r -> r
  f4 x = x .*. one
:}
>>> f4 5
5

Since: 0.1

Instances

Instances details
Semiring Int16 Source #

Since: 0.1

Instance details

Defined in Numeric.Algebra.Rings.Semiring

Semiring Int32 Source #

Since: 0.1

Instance details

Defined in Numeric.Algebra.Rings.Semiring

Semiring Int64 Source #

Since: 0.1

Instance details

Defined in Numeric.Algebra.Rings.Semiring

Semiring Int8 Source #

Since: 0.1

Instance details

Defined in Numeric.Algebra.Rings.Semiring

Semiring Word16 Source #

Since: 0.1

Instance details

Defined in Numeric.Algebra.Rings.Semiring

Semiring Word32 Source #

Since: 0.1

Instance details

Defined in Numeric.Algebra.Rings.Semiring

Semiring Word64 Source #

Since: 0.1

Instance details

Defined in Numeric.Algebra.Rings.Semiring

Semiring Word8 Source #

Since: 0.1

Instance details

Defined in Numeric.Algebra.Rings.Semiring

Semiring Integer Source #

Since: 0.1

Instance details

Defined in Numeric.Algebra.Rings.Semiring

Semiring Natural Source #

Since: 0.1

Instance details

Defined in Numeric.Algebra.Rings.Semiring

Semiring Double Source #

Since: 0.1

Instance details

Defined in Numeric.Algebra.Rings.Semiring

Semiring Float Source #

Since: 0.1

Instance details

Defined in Numeric.Algebra.Rings.Semiring

Semiring Int Source #

Since: 0.1

Instance details

Defined in Numeric.Algebra.Rings.Semiring

Semiring Word Source #

Since: 0.1

Instance details

Defined in Numeric.Algebra.Rings.Semiring

RealFloat a => Semiring (Complex a) Source #

Since: 0.1

Instance details

Defined in Numeric.Algebra.Rings.Semiring

Semiring (Ratio Integer) Source #

Since: 0.1

Instance details

Defined in Numeric.Algebra.Rings.Semiring

Semiring (Ratio Natural) Source #

Since: 0.1

Instance details

Defined in Numeric.Algebra.Rings.Semiring

HasResolution k => Semiring (Fixed k) Source #

Since: 0.1

Instance details

Defined in Numeric.Algebra.Rings.Semiring