papa-base-export-0.4: Prelude with only useful functions

Papa.Base.Export.Data.Ratio

Synopsis

# Documentation

data Ratio a :: * -> * #

Rational numbers, with numerator and denominator of some Integral type.

Instances

 Integral a => Enum (Ratio a) Since: 2.0.1 Methodssucc :: Ratio a -> Ratio a #pred :: Ratio a -> Ratio a #toEnum :: Int -> Ratio a #fromEnum :: Ratio a -> Int #enumFrom :: Ratio a -> [Ratio a] #enumFromThen :: Ratio a -> Ratio a -> [Ratio a] #enumFromTo :: Ratio a -> Ratio a -> [Ratio a] #enumFromThenTo :: Ratio a -> Ratio a -> Ratio a -> [Ratio a] # Eq a => Eq (Ratio a) Methods(==) :: Ratio a -> Ratio a -> Bool #(/=) :: Ratio a -> Ratio a -> Bool # Integral a => Fractional (Ratio a) Since: 2.0.1 Methods(/) :: Ratio a -> Ratio a -> Ratio a #recip :: Ratio a -> Ratio a # Integral a => Num (Ratio a) Since: 2.0.1 Methods(+) :: Ratio a -> Ratio a -> Ratio a #(-) :: Ratio a -> Ratio a -> Ratio a #(*) :: Ratio a -> Ratio a -> Ratio a #negate :: Ratio a -> Ratio a #abs :: Ratio a -> Ratio a #signum :: Ratio a -> Ratio a # Integral a => Ord (Ratio a) Since: 2.0.1 Methodscompare :: 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 # (Integral a, Read a) => Read (Ratio a) Since: 2.1 MethodsreadsPrec :: Int -> ReadS (Ratio a) #readList :: ReadS [Ratio a] # Integral a => Real (Ratio a) Since: 2.0.1 MethodstoRational :: Ratio a -> Rational # Integral a => RealFrac (Ratio a) Since: 2.0.1 MethodsproperFraction :: Integral b => Ratio a -> (b, Ratio a) #truncate :: Integral b => Ratio a -> b #round :: Integral b => Ratio a -> b #ceiling :: Integral b => Ratio a -> b #floor :: Integral b => Ratio a -> b # Show a => Show (Ratio a) Since: 2.0.1 MethodsshowsPrec :: Int -> Ratio a -> ShowS #show :: Ratio a -> String #showList :: [Ratio a] -> ShowS #

Arbitrary-precision rational numbers, represented as a ratio of two Integer values. A rational number may be constructed using the % operator.

(%) :: Integral a => a -> a -> Ratio a infixl 7 #

Forms the ratio of two integral numbers.

numerator :: Ratio a -> a #

Extract the numerator of the ratio in reduced form: the numerator and denominator have no common factor and the denominator is positive.

denominator :: Ratio a -> a #

Extract the denominator of the ratio in reduced form: the numerator and denominator have no common factor and the denominator is positive.

approxRational :: RealFrac a => a -> a -> Rational #

approxRational, applied to two real fractional numbers x and epsilon, returns the simplest rational number within epsilon of x. A rational number y is said to be simpler than another y' if

• abs (numerator y) <= abs (numerator y'), and
• denominator y <= denominator y'.

Any real interval contains a unique simplest rational; in particular, note that 0/1 is the simplest rational of all.