]> gitweb.michael.orlitzky.com - numerical-analysis.git/blob - src/BigFloat.hs
e23ebe6833bd674be0d5ea1f65dbfe540ec72baf
[numerical-analysis.git] / src / BigFloat.hs
1 {-# LANGUAGE RebindableSyntax #-}
2
3 module BigFloat
4 (module Data.Number.BigFloat)
5 where
6
7 import Data.Number.BigFloat
8
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
17
18 type R = BigFloat Prec50
19
20 instance Epsilon e => Additive.C (BigFloat e) where
21 (+) = (P.+)
22 zero = (P.fromInteger 0)
23 negate = (P.negate)
24
25 instance Epsilon e => Ring.C (BigFloat e) where
26 (*) = (P.*)
27 fromInteger = P.fromInteger
28
29 instance Epsilon e => Absolute.C (BigFloat e) where
30 abs = P.abs
31 signum = P.signum
32
33 instance Epsilon e => Field.C (BigFloat e) where
34 recip = P.recip
35
36 instance Epsilon e => ZeroTestable.C (BigFloat e) where
37 isZero = ZeroTestable.defltIsZero
38
39 instance Epsilon e => ToRational.C (BigFloat e) where
40 toRational = fromRational . P.toRational