Copyright | (c) The University of Glasgow 2001 |
---|---|

License | BSD-style (see the file libraries/base/LICENSE) |

Maintainer | libraries@haskell.org |

Stability | stable |

Portability | portable |

Safe Haskell | Safe |

Language | Haskell2010 |

Standard functions on rational numbers

# Documentation

Rational numbers, with numerator and denominator of some `Integral`

type.

Integral a => Enum (Ratio a) Source | |

Eq a => Eq (Ratio a) Source | |

Integral a => Fractional (Ratio a) Source | |

(Data a, Integral a) => Data (Ratio a) Source | |

Integral a => Num (Ratio a) Source | |

Integral a => Ord (Ratio a) Source | |

(Integral a, Read a) => Read (Ratio a) Source | |

Integral a => Real (Ratio a) Source | |

Integral a => RealFrac (Ratio a) Source | |

(Integral a, Show a) => Show (Ratio a) Source | |

(Storable a, Integral a) => Storable (Ratio a) Source | |

numerator :: Integral a => Ratio a -> a Source

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

denominator :: Integral a => Ratio a -> a Source

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 Source

`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

, and`abs`

(`numerator`

y) <=`abs`

(`numerator`

y')

.`denominator`

y <=`denominator`

y'

Any real interval contains a unique simplest rational;
in particular, note that `0/1`

is the simplest rational of all.