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.Ring as Ring
14 import qualified Algebra.ToRational as ToRational
15 import qualified Algebra.ZeroTestable as ZeroTestable
16 import qualified Prelude as P
18 type R = BigFloat Prec50
20 instance Epsilon e => Additive.C (BigFloat e) where
22 zero = (P.fromInteger 0)
25 instance Epsilon e => Ring.C (BigFloat e) where
27 fromInteger = P.fromInteger
29 instance Epsilon e => Absolute.C (BigFloat e) where
33 instance Epsilon e => Field.C (BigFloat e) where
36 instance Epsilon e => ZeroTestable.C (BigFloat e) where
37 isZero = ZeroTestable.defltIsZero
39 instance Epsilon e => ToRational.C (BigFloat e) where
40 toRational = fromRational . P.toRational