1 {-# LANGUAGE RebindableSyntax #-}
4 (module Data.Number.BigFloat)
7 import Data.Number.BigFloat
9 import NumericPrelude hiding (abs)
10 import qualified Algebra.Absolute as Absolute
11 import qualified Algebra.Additive as Additive
12 import qualified Algebra.Field as Field
13 import qualified Algebra.RealField as RealField
14 import qualified Algebra.RealRing as RealRing
15 import qualified Algebra.Ring as Ring
16 import qualified Algebra.ToRational as ToRational
17 import qualified Algebra.ZeroTestable as ZeroTestable
18 import qualified Prelude as P
20 type R = BigFloat Prec50
22 instance Epsilon e => Additive.C (BigFloat e) where
24 zero = (P.fromInteger 0)
27 instance Epsilon e => Ring.C (BigFloat e) where
29 fromInteger = P.fromInteger
31 instance Epsilon e => Absolute.C (BigFloat e) where
35 instance Epsilon e => Field.C (BigFloat e) where
38 instance Epsilon e => ZeroTestable.C (BigFloat e) where
39 isZero = ZeroTestable.defltIsZero
41 instance Epsilon e => ToRational.C (BigFloat e) where
42 toRational = fromRational . P.toRational
44 instance Epsilon e => RealRing.C (BigFloat e) where
45 floor = fromInteger . P.floor
47 instance Epsilon e => RealField.C (BigFloat e)