numhask-0.2.3.1: numeric classes

Safe HaskellNone
LanguageHaskell2010

NumHask.Algebra.Rational

Contents

Description

Integral classes

Synopsis

Documentation

data Ratio a #

Constructors

!a :% !a 
Instances
(Eq a, AdditiveUnital a) => Eq (Ratio a) # 
Instance details

Defined in NumHask.Algebra.Rational

Methods

(==) :: Ratio a -> Ratio a -> Bool #

(/=) :: Ratio a -> Ratio a -> Bool #

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

Defined in NumHask.Algebra.Rational

Methods

compare :: Ratio a -> Ratio a -> Ordering #

(<) :: Ratio a -> Ratio a -> Bool #

(<=) :: Ratio a -> Ratio a -> Bool #

(>) :: Ratio a -> Ratio a -> Bool #

(>=) :: Ratio a -> Ratio a -> Bool #

max :: Ratio a -> Ratio a -> Ratio a #

min :: Ratio a -> Ratio a -> Ratio a #

Show a => Show (Ratio a) # 
Instance details

Defined in NumHask.Algebra.Rational

Methods

showsPrec :: Int -> Ratio a -> ShowS #

show :: Ratio a -> String #

showList :: [Ratio a] -> ShowS #

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

Defined in NumHask.Algebra.Rational

Methods

(-) :: Ratio a -> Ratio a -> Ratio a #

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

Defined in NumHask.Algebra.Rational

Methods

(+) :: Ratio a -> Ratio a -> Ratio a #

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

Defined in NumHask.Algebra.Rational

Methods

negate :: Ratio a -> Ratio a #

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

Defined in NumHask.Algebra.Rational

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

Defined in NumHask.Algebra.Rational

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

Defined in NumHask.Algebra.Rational

Methods

zero :: Ratio a #

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

Defined in NumHask.Algebra.Rational

Methods

plus :: Ratio a -> Ratio a -> Ratio a #

(Signed a, AdditiveInvertible a, AdditiveUnital a, Integral a, Ord a, Multiplicative a) => MultiplicativeGroup (Ratio a) # 
Instance details

Defined in NumHask.Algebra.Rational

Methods

(/) :: Ratio a -> Ratio a -> Ratio a #

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

Defined in NumHask.Algebra.Rational

Methods

(*) :: Ratio a -> Ratio a -> Ratio a #

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

Defined in NumHask.Algebra.Rational

Methods

recip :: Ratio a -> Ratio a #

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

Defined in NumHask.Algebra.Rational

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

Defined in NumHask.Algebra.Rational

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

Defined in NumHask.Algebra.Rational

Methods

one :: Ratio a #

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

Defined in NumHask.Algebra.Rational

Methods

times :: Ratio a -> Ratio a -> Ratio a #

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

Defined in NumHask.Algebra.Rational

(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 #

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

Defined in NumHask.Algebra.Rational

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

Defined in NumHask.Algebra.Rational

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

Defined in NumHask.Algebra.Rational

(FromInteger a, MultiplicativeUnital a) => FromInteger (Ratio a) # 
Instance details

Defined in NumHask.Algebra.Rational

Methods

fromInteger :: Integer -> Ratio a #

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

Defined in NumHask.Algebra.Rational

Methods

negInfinity :: Ratio a #

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

Defined in NumHask.Algebra.Rational

Methods

infinity :: Ratio a #

nan :: Ratio a #

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

Defined in NumHask.Algebra.Rational

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

Defined in NumHask.Algebra.Rational

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

Defined in NumHask.Algebra.Rational

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

Defined in NumHask.Algebra.Rational

Methods

sign :: Ratio a -> Ratio a #

abs :: Ratio a -> Ratio a #

FromInteger a => FromRatio (Ratio a) # 
Instance details

Defined in NumHask.Algebra.Rational

Methods

fromRatio :: Ratio Integer -> Ratio a #

ToInteger a => ToRatio (Ratio a) # 
Instance details

Defined in NumHask.Algebra.Rational

Methods

toRatio :: Ratio a -> Ratio Integer #

(Ord a, Signed a, ToInteger a, Integral a, Multiplicative a, Ring a, Eq b, AdditiveGroup b, Integral b, FromInteger b) => QuotientField (Ratio a) b # 
Instance details

Defined in NumHask.Algebra.Rational

Methods

properFraction :: Ratio a -> (b, Ratio a) #

round :: Ratio a -> b #

ceiling :: Ratio a -> b #

floor :: Ratio a -> b #

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

Defined in NumHask.Algebra.Rational

Methods

distanceL1 :: Ratio a -> Ratio a -> Ratio a #

distanceL2 :: Ratio a -> Ratio a -> Ratio a #

distanceLp :: Ratio a -> Ratio a -> Ratio a -> Ratio a #

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

Defined in NumHask.Algebra.Rational

Methods

normL1 :: Ratio a -> Ratio a #

normL2 :: Ratio a -> Ratio a #

normLp :: Ratio a -> Ratio a -> Ratio a #

class ToRatio a where #

toRatio is equivalent to Real in base.

Minimal complete definition

toRatio

Methods

toRatio :: a -> Ratio Integer #

Instances
ToRatio Double # 
Instance details

Defined in NumHask.Algebra.Rational

ToRatio Float # 
Instance details

Defined in NumHask.Algebra.Rational

Methods

toRatio :: Float -> Ratio Integer #

ToRatio Int # 
Instance details

Defined in NumHask.Algebra.Rational

Methods

toRatio :: Int -> Ratio Integer #

ToRatio Int8 # 
Instance details

Defined in NumHask.Algebra.Rational

Methods

toRatio :: Int8 -> Ratio Integer #

ToRatio Int16 # 
Instance details

Defined in NumHask.Algebra.Rational

Methods

toRatio :: Int16 -> Ratio Integer #

ToRatio Int32 # 
Instance details

Defined in NumHask.Algebra.Rational

Methods

toRatio :: Int32 -> Ratio Integer #

ToRatio Int64 # 
Instance details

Defined in NumHask.Algebra.Rational

Methods

toRatio :: Int64 -> Ratio Integer #

ToRatio Integer # 
Instance details

Defined in NumHask.Algebra.Rational

ToRatio Natural # 
Instance details

Defined in NumHask.Algebra.Rational

ToRatio Rational # 
Instance details

Defined in NumHask.Algebra.Rational

ToRatio Word # 
Instance details

Defined in NumHask.Algebra.Rational

Methods

toRatio :: Word -> Ratio Integer #

ToRatio Word8 # 
Instance details

Defined in NumHask.Algebra.Rational

Methods

toRatio :: Word8 -> Ratio Integer #

ToRatio Word16 # 
Instance details

Defined in NumHask.Algebra.Rational

ToRatio Word32 # 
Instance details

Defined in NumHask.Algebra.Rational

ToRatio Word64 # 
Instance details

Defined in NumHask.Algebra.Rational

ToInteger a => ToRatio (Ratio a) # 
Instance details

Defined in NumHask.Algebra.Rational

Methods

toRatio :: Ratio a -> Ratio Integer #

(ToRatio a, ExpField a) => ToRatio (LogField a) # 
Instance details

Defined in NumHask.Data.LogField

Methods

toRatio :: LogField a -> Ratio Integer #

class FromRatio a where #

Fractional in base splits into fromRatio and MultiplicativeGroup

Minimal complete definition

fromRatio

Methods

fromRatio :: Ratio Integer -> a #

Instances
FromRatio Double # 
Instance details

Defined in NumHask.Algebra.Rational

FromRatio Float # 
Instance details

Defined in NumHask.Algebra.Rational

FromInteger a => FromRatio (Ratio a) # 
Instance details

Defined in NumHask.Algebra.Rational

Methods

fromRatio :: Ratio Integer -> Ratio a #

(FromRatio a, ExpField a) => FromRatio (LogField a) # 
Instance details

Defined in NumHask.Data.LogField

fromRational :: (ToRatio a, FromRatio b) => a -> b #

coercion of Rationals

fromRational a == a

$integral_functionality

reduce :: (Ord a, AdditiveInvertible a, Signed a, Integral a) => a -> a -> Ratio a #

reduce is a subsidiary function used only in this module. It normalises a ratio by dividing both numerator and denominator by their greatest common divisor.

gcd :: (Ord a, Signed a, Integral a) => a -> a -> a #

gcd x y is the non-negative factor of both x and y of which every common factor of x and y is also a factor; for example gcd 4 2 = 2, gcd (-4) 6 = 2, gcd 0 4 = 4. gcd 0 0 = 0. (That is, the common divisor that is "greatest" in the divisibility preordering.)

Note: Since for signed fixed-width integer types, abs minBound < 0, the result may be negative if one of the arguments is minBound (and necessarily is if the other is 0 or minBound) for such types.