| Portability | portable |
|---|---|
| Stability | stable |
| Maintainer | libraries@haskell.org |
Data.YAP.Ratio
Description
Standard functions on rational numbers.
This version uses the same type as Data.Ratio, but with components
generalized from Integral to EuclideanDomain. However using the
same type means we have the old, more constrained, instances of Ord,
Show and Read.
- data Ratio a
- type Rational = Ratio Integer
- (%) :: EuclideanDomain a => a -> a -> Ratio a
- numerator :: EuclideanDomain a => Ratio a -> a
- denominator :: EuclideanDomain a => Ratio a -> a
- approxRational :: RealFrac a => a -> a -> Rational
Documentation
data Ratio a
Rational numbers, with numerator and denominator of some Integral type.
Instances
| Integral a => Enum (Ratio a) | |
| Eq a => Eq (Ratio a) | |
| Integral a => Fractional (Ratio a) | |
| Integral a => Num (Ratio a) | |
| Integral a => Ord (Ratio a) | |
| (Integral a, Read a) => Read (Ratio a) | |
| Integral a => Real (Ratio a) | |
| Integral a => RealFrac (Ratio a) | |
| Integral a => Show (Ratio a) | |
| EuclideanDomain a => Field (Ratio a) | |
| EuclideanDomain a => Ring (Ratio a) | |
| EuclideanDomain a => AbelianGroup (Ratio a) | |
| (Integral a, Integral a) => RealFrac (Ratio a) | |
| (Integral a, Integral a) => Fractional (Ratio a) | |
| (Integral a, Integral a) => Real (Ratio a) | |
| (Integral a, Integral a) => Num (Ratio a) |
(%) :: EuclideanDomain a => a -> a -> Ratio aSource
Forms the ratio of two values in a Euclidean domain (e.g. Integer).
numerator :: EuclideanDomain a => Ratio a -> aSource
Extract the numerator of the ratio in reduced form: the numerator and denominator have no common factor and the denominator is positive.
denominator :: EuclideanDomain a => Ratio a -> aSource
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 -> RationalSource
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
-
, andabs(numeratory) <=abs(numeratory') -
.denominatory <=denominatory'
Any real interval contains a unique simplest rational;
in particular, note that 0/1 is the simplest rational of all.