| |||||||||||||||||||||||||||||||||||||||||
| |||||||||||||||||||||||||||||||||||||||||
Description | |||||||||||||||||||||||||||||||||||||||||
This module defines a "Fixed" type for fixed-precision arithmetic. The parameter to Fixed is any type that's an instance of HasResolution. HasResolution has a single method that gives the resolution of the Fixed type. This module also contains generalisations of div, mod, and divmod to work with any Real instance. | |||||||||||||||||||||||||||||||||||||||||
Synopsis | |||||||||||||||||||||||||||||||||||||||||
| |||||||||||||||||||||||||||||||||||||||||
Documentation | |||||||||||||||||||||||||||||||||||||||||
div' :: (Real a, Integral b) => a -> a -> b | |||||||||||||||||||||||||||||||||||||||||
generalisation of div to any instance of Real | |||||||||||||||||||||||||||||||||||||||||
mod' :: Real a => a -> a -> a | |||||||||||||||||||||||||||||||||||||||||
generalisation of mod to any instance of Real | |||||||||||||||||||||||||||||||||||||||||
divMod' :: (Real a, Integral b) => a -> a -> (b, a) | |||||||||||||||||||||||||||||||||||||||||
generalisation of divMod to any instance of Real | |||||||||||||||||||||||||||||||||||||||||
data Fixed a | |||||||||||||||||||||||||||||||||||||||||
| |||||||||||||||||||||||||||||||||||||||||
class HasResolution a where | |||||||||||||||||||||||||||||||||||||||||
| |||||||||||||||||||||||||||||||||||||||||
showFixed :: HasResolution a => Bool -> Fixed a -> String | |||||||||||||||||||||||||||||||||||||||||
First arg is whether to chop off trailing zeros | |||||||||||||||||||||||||||||||||||||||||
data E0 | |||||||||||||||||||||||||||||||||||||||||
| |||||||||||||||||||||||||||||||||||||||||
type Uni = Fixed E0 | |||||||||||||||||||||||||||||||||||||||||
resolution of 1, this works the same as Integer | |||||||||||||||||||||||||||||||||||||||||
data E1 | |||||||||||||||||||||||||||||||||||||||||
| |||||||||||||||||||||||||||||||||||||||||
type Deci = Fixed E1 | |||||||||||||||||||||||||||||||||||||||||
resolution of 10^-1 = .1 | |||||||||||||||||||||||||||||||||||||||||
data E2 | |||||||||||||||||||||||||||||||||||||||||
| |||||||||||||||||||||||||||||||||||||||||
type Centi = Fixed E2 | |||||||||||||||||||||||||||||||||||||||||
resolution of 10^-2 = .01, useful for many monetary currencies | |||||||||||||||||||||||||||||||||||||||||
data E3 | |||||||||||||||||||||||||||||||||||||||||
| |||||||||||||||||||||||||||||||||||||||||
type Milli = Fixed E3 | |||||||||||||||||||||||||||||||||||||||||
resolution of 10^-3 = .001 | |||||||||||||||||||||||||||||||||||||||||
data E6 | |||||||||||||||||||||||||||||||||||||||||
| |||||||||||||||||||||||||||||||||||||||||
type Micro = Fixed E6 | |||||||||||||||||||||||||||||||||||||||||
resolution of 10^-6 = .000001 | |||||||||||||||||||||||||||||||||||||||||
data E9 | |||||||||||||||||||||||||||||||||||||||||
| |||||||||||||||||||||||||||||||||||||||||
type Nano = Fixed E9 | |||||||||||||||||||||||||||||||||||||||||
resolution of 10^-9 = .000000001 | |||||||||||||||||||||||||||||||||||||||||
data E12 | |||||||||||||||||||||||||||||||||||||||||
| |||||||||||||||||||||||||||||||||||||||||
type Pico = Fixed E12 | |||||||||||||||||||||||||||||||||||||||||
resolution of 10^-12 = .000000000001 | |||||||||||||||||||||||||||||||||||||||||
Produced by Haddock version 2.6.1 |