1 {-# LANGUAGE RebindableSyntax #-}
4 (module Data.Number.BigFloat,
8 import Data.Number.BigFloat
10 import NumericPrelude hiding (abs)
11 import qualified Algebra.Absolute as Absolute
12 import qualified Algebra.Additive as Additive
13 import qualified Algebra.Field as Field
14 import qualified Algebra.RealField as RealField
15 import qualified Algebra.RealRing as RealRing
16 import qualified Algebra.Ring as Ring
17 import qualified Algebra.ToRational as ToRational
18 import qualified Algebra.ZeroTestable as ZeroTestable
19 import qualified Prelude as P
21 type R = BigFloat Prec50
23 instance Epsilon e => Additive.C (BigFloat e) where
25 zero = (P.fromInteger 0)
28 instance Epsilon e => Ring.C (BigFloat e) where
30 fromInteger = P.fromInteger
32 instance Epsilon e => Absolute.C (BigFloat e) where
36 instance Epsilon e => Field.C (BigFloat e) where
39 instance Epsilon e => ZeroTestable.C (BigFloat e) where
40 isZero = ZeroTestable.defltIsZero
42 instance Epsilon e => ToRational.C (BigFloat e) where
43 toRational = fromRational . P.toRational
45 instance Epsilon e => RealRing.C (BigFloat e) where
46 floor = fromInteger . P.floor
48 instance Epsilon e => RealField.C (BigFloat e)