| |||||||||||||||||||||||||||||||||||||||||
| |||||||||||||||||||||||||||||||||||||||||
| 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.7.2 |