floating: Add remainder functions.
[altfloat.git] / Data / Floating / Classes.hs
blob2a0bedbfda5fa591123fc1b97770486589d2f553
1 module Data.Floating.Classes where
3 import Prelude hiding (Floating(..), RealFloat(..))
5 data FPClassification = FPInfinite | FPNaN | FPNormal | FPSubNormal | FPZero
6 deriving (Show, Read, Eq, Enum, Bounded)
8 class Fractional a => Floating a where
9 (**) :: a -> a -> a
10 sqrt :: a -> a
11 acos :: a -> a
12 asin :: a -> a
13 atan :: a -> a
14 cos :: a -> a
15 sin :: a -> a
16 tan :: a -> a
17 acosh :: a -> a
18 asinh :: a -> a
19 atanh :: a -> a
20 cosh :: a -> a
21 sinh :: a -> a
22 tanh :: a -> a
23 exp :: a -> a
24 log :: a -> a
26 class Floating a => RealFloat a where
27 copysign :: a -> a -> a
28 nextafter :: a -> a -> a
29 atan2 :: a -> a -> a
30 fmod :: a -> a -> a
31 frem :: a -> a -> a
32 hypot :: a -> a -> a
33 cbrt :: a -> a
34 exp2 :: a -> a
35 expm1 :: a -> a
36 log10 :: a -> a
37 log1p :: a -> a
38 log2 :: a -> a
39 logb :: a -> a
40 erf :: a -> a
41 erfc :: a -> a
42 lgamma :: a -> a
43 tgamma :: a -> a
44 classify :: a -> FPClassification
45 infinity :: a
46 nan :: a
47 pi :: a
49 infinity = 1/0
50 nan = 0/0
51 pi = 4 * atan 1