semirings-0.5: two monoids as one, in holy haskimony

Safe HaskellNone
LanguageHaskell98

Data.Field

Contents

Description

A Field is a Ring in which all nonzero elements have a multiplicative inverse.

Synopsis

Field typeclass

class (Euclidean a, Ring a) => Field a Source #

A Field represents a field, a ring with a multiplicative inverse for any non-zero element.

Instances
Field Double Source # 
Instance details

Defined in Data.Euclidean

Field Float Source # 
Instance details

Defined in Data.Euclidean

Field () Source # 
Instance details

Defined in Data.Euclidean

Field CFloat Source # 
Instance details

Defined in Data.Euclidean

Field CDouble Source # 
Instance details

Defined in Data.Euclidean

Integral a => Field (Ratio a) Source # 
Instance details

Defined in Data.Euclidean

Field a => Field (Complex a) Source # 
Instance details

Defined in Data.Euclidean

(Eq a, Fractional a) => Field (WrappedFractional a) Source # 
Instance details

Defined in Data.Euclidean

divide :: Field a => a -> a -> a infixl 7 Source #

Divide two elements of a Field. For any Fractional type, this is the same as '(Prelude./)'.

x divide y = x times recip y

fromRational :: Field a => Rational -> a Source #

Convert from rational to field.

recip :: Field a => a -> a Source #

Invert an element of a Field. For any Fractional type, this is the same as recip.

recip x times x = one

(/) :: Field a => a -> a -> a infixl 7 Source #

Infix shorthand for divide.