Safe Haskell | None |
---|---|
Language | Haskell2010 |
NumHask.Algebra.Abstract.Field
Description
Field classes
Synopsis
- class (Distributive a, Subtractive a, Divisive a) => Field a
- class Field a => ExpField a where
- class (Field a, Subtractive a, Multiplicative b, Additive b) => QuotientField a b where
- properFraction :: a -> (b, a)
- round :: a -> b
- ceiling :: a -> b
- floor :: a -> b
- truncate :: a -> b
- class Field a => UpperBoundedField a where
- class (Subtractive a, Field a) => LowerBoundedField a where
- negInfinity :: a
- class Field a => TrigField a where
- half :: Field a => a
Documentation
class (Distributive a, Subtractive a, Divisive a) => Field a Source #
A Field is a set on which addition, subtraction, multiplication, and division are defined. It is also assumed that multiplication is distributive over addition.
A summary of the rules thus inherited from super-classes of Field
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 * a == a a * one == a (a * b) * c == a * (b * c) a * (b + c) == a * b + a * c (a + b) * c == a * c + b * c a * zero == zero zero * a == zero a * b == b * a a / a = one recip a = one / a recip a * a = one a * recip a = one
Instances
Field Double Source # | |
Defined in NumHask.Algebra.Abstract.Field | |
Field Float Source # | |
Defined in NumHask.Algebra.Abstract.Field | |
(Field a, Subtractive a) => Field (Complex a) Source # | |
Defined in NumHask.Data.Complex | |
GCDConstraints a => Field (Ratio a) Source # | |
Defined in NumHask.Data.Rational | |
Field a => Field (Pair a) Source # | |
Defined in NumHask.Data.Pair | |
(Ord a, ExpField a, LowerBoundedField a, UpperBoundedField a) => Field (LogField a) Source # | |
Defined in NumHask.Data.LogField | |
(Subtractive a, Divisive a) => Field (Wrapped a) Source # | |
Defined in NumHask.Data.Wrapped | |
(Ord a, Subtractive a, Divisive a) => Field (Positive a) Source # | |
Defined in NumHask.Data.Positive | |
Field b => Field (a -> b) Source # | |
Defined in NumHask.Algebra.Abstract.Field |
class Field a => ExpField a where Source #
A hyperbolic field class
sqrt . (**2) == identity log . exp == identity for +ive b, a != 0,1: a ** logBase a b ≈ b
Instances
ExpField Double Source # | |
ExpField Float Source # | |
(Ord a, TrigField a, ExpField a, Subtractive a) => ExpField (Complex a) Source # | |
ExpField a => ExpField (Pair a) Source # | |
(Field (LogField a), ExpField a, LowerBoundedField a, Ord a) => ExpField (LogField a) Source # | |
ExpField a => ExpField (Wrapped a) Source # | |
(ExpField a, Ord a) => ExpField (Positive a) Source # | |
ExpField b => ExpField (a -> b) Source # | |
class (Field a, Subtractive a, Multiplicative b, Additive b) => QuotientField a b where Source #
Minimal complete definition
Methods
properFraction :: a -> (b, a) Source #
round :: (Ord a, Ord b, Subtractive b, Integral b) => a -> b Source #
ceiling :: Ord a => a -> b Source #
floor :: (Ord a, Subtractive b) => a -> b Source #
Instances
QuotientField Double Integer Source # | |
QuotientField Float Integer Source # | |
(GCDConstraints a, GCDConstraints b, ToInteger a, Field a, FromIntegral b a) => QuotientField (Ratio a) b Source # | |
(Ord a, QuotientField a Integer) => QuotientField (Wrapped a) (Wrapped Integer) Source # | |
(Ord a, QuotientField a Integer) => QuotientField (Positive a) (Positive Integer) Source # | |
Defined in NumHask.Data.Positive | |
QuotientField b c => QuotientField (a -> b) (a -> c) Source # | |
class Field a => UpperBoundedField a where Source #
A bounded field includes the concepts of infinity and NaN, thus moving away from error throwing.
one / zero + infinity == infinity infinity + a == infinity zero / zero != nan
Note the tricky law that, although nan is assigned to zero/zero, they are never-the-less not equal. A committee decided this.
Minimal complete definition
Nothing
Instances
UpperBoundedField Double Source # | |
UpperBoundedField Float Source # | |
(UpperBoundedField a, IntegralDomain a, Subtractive a) => UpperBoundedField (Complex a) Source # | |
(GCDConstraints a, Distributive a, IntegralDomain a) => UpperBoundedField (Ratio a) Source # | |
UpperBoundedField a => UpperBoundedField (Pair a) Source # | |
(Ord a, ExpField a, LowerBoundedField a, UpperBoundedField a) => UpperBoundedField (LogField a) Source # | |
UpperBoundedField a => UpperBoundedField (Wrapped a) Source # | |
(Ord a, UpperBoundedField a) => UpperBoundedField (Positive a) Source # | |
UpperBoundedField b => UpperBoundedField (a -> b) Source # | |
class (Subtractive a, Field a) => LowerBoundedField a where Source #
Minimal complete definition
Nothing
Methods
negInfinity :: a Source #
Instances
class Field a => TrigField a where Source #
Trigonometric Field
Methods