rings-0.1.3: Ring-like objects.

Safe HaskellSafe
LanguageHaskell2010

Data.Semifield

Contents

Synopsis

Semifields

class (Semiring a, SemifieldLaw a) => Semifield a Source #

A semifield, near-field, or division ring.

Instances needn't have commutative multiplication or additive inverses, however addition must be commutative, and addition and multiplication must be associative as usual.

See also the wikipedia definitions of:

Instances
Semifield Double Source # 
Instance details

Defined in Data.Semifield

Semifield Float Source # 
Instance details

Defined in Data.Semifield

Semifield Rational Source # 
Instance details

Defined in Data.Semifield

Semifield () Source # 
Instance details

Defined in Data.Semifield

Semifield Uni Source # 
Instance details

Defined in Data.Semifield

Semifield Deci Source # 
Instance details

Defined in Data.Semifield

Semifield Centi Source # 
Instance details

Defined in Data.Semifield

Semifield Milli Source # 
Instance details

Defined in Data.Semifield

Semifield Micro Source # 
Instance details

Defined in Data.Semifield

Semifield Nano Source # 
Instance details

Defined in Data.Semifield

Semifield Pico Source # 
Instance details

Defined in Data.Semifield

Semifield CFloat Source # 
Instance details

Defined in Data.Semifield

Semifield CDouble Source # 
Instance details

Defined in Data.Semifield

Semifield (Ratio Natural) Source # 
Instance details

Defined in Data.Semifield

anan :: Semifield a => a Source #

The NaN value of the semifield.

 anan = zero / zero

pinf :: Semifield a => a Source #

The positive infinity of the semifield.

 pinf = one / zero

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

Right division by a multiplicative group element.

(\\) :: (Multiplicative - Group) a => a -> a -> a infixl 7 Source #

Left division by a multiplicative group element.

When * is commutative we must have:

 x \\ y = y / x

recip :: (Multiplicative - Group) a => a -> a Source #

Reciprocal of a multiplicative group element.

x / y = x * recip y
x \\ y = recip x * y
>>> recip (3 :+ 4) :: Complex Rational
3 % 25 :+ (-4) % 25
>>> recip (3 :+ 4) :: Complex Double
0.12 :+ (-0.16)
>>> recip (3 :+ 4) :: Complex Pico
0.120000000000 :+ -0.160000000000

Fields

class (Ring a, Semifield a, FieldLaw a) => Field a Source #

Instances
Field Double Source # 
Instance details

Defined in Data.Semifield

Field Float Source # 
Instance details

Defined in Data.Semifield

Field Rational Source # 
Instance details

Defined in Data.Semifield

Field () Source # 
Instance details

Defined in Data.Semifield

Field Uni Source # 
Instance details

Defined in Data.Semifield

Field Deci Source # 
Instance details

Defined in Data.Semifield

Field Centi Source # 
Instance details

Defined in Data.Semifield

Field Milli Source # 
Instance details

Defined in Data.Semifield

Field Micro Source # 
Instance details

Defined in Data.Semifield

Field Nano Source # 
Instance details

Defined in Data.Semifield

Field Pico Source # 
Instance details

Defined in Data.Semifield

Field CFloat Source # 
Instance details

Defined in Data.Semifield

Field CDouble Source # 
Instance details

Defined in Data.Semifield

class Field a => Real a Source #

A type modeling the real numbers.

Instances
Real Double Source # 
Instance details

Defined in Data.Semifield

Real Float Source # 
Instance details

Defined in Data.Semifield

Real Rational Source # 
Instance details

Defined in Data.Semifield

Real Uni Source # 
Instance details

Defined in Data.Semifield

Real Deci Source # 
Instance details

Defined in Data.Semifield

Real Centi Source # 
Instance details

Defined in Data.Semifield

Real Milli Source # 
Instance details

Defined in Data.Semifield

Real Micro Source # 
Instance details

Defined in Data.Semifield

Real Nano Source # 
Instance details

Defined in Data.Semifield

Real Pico Source # 
Instance details

Defined in Data.Semifield

Real CFloat Source # 
Instance details

Defined in Data.Semifield

Real CDouble Source # 
Instance details

Defined in Data.Semifield

ninf :: Field a => a Source #

The one / zero value of the field.

 ninf = negate one / zero

(^^) :: (Multiplicative - Group) a => a -> Integer -> a infixr 8 Source #

Integral power of a multiplicative group element.

 one == a ^^ 0
>>> 8 ^^ 0 :: Double
1.0
>>> 8 ^^ 0 :: Pico
1.000000000000