]> gitweb.michael.orlitzky.com - numerical-analysis.git/blob - src/BigFloat.hs
Add type synonyms for column/row matrices.
[numerical-analysis.git] / src / BigFloat.hs
1 {-# LANGUAGE RebindableSyntax #-}
2
3 module BigFloat
4 (module Data.Number.BigFloat,
5 R)
6 where
7
8 import Data.Number.BigFloat
9
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
20
21 type R = BigFloat Prec50
22
23 instance Epsilon e => Additive.C (BigFloat e) where
24 (+) = (P.+)
25 zero = 0
26 negate = (P.negate)
27
28 instance Epsilon e => Ring.C (BigFloat e) where
29 (*) = (P.*)
30 fromInteger = P.fromInteger
31
32 instance Epsilon e => Absolute.C (BigFloat e) where
33 abs = P.abs
34 signum = P.signum
35
36 instance Epsilon e => Field.C (BigFloat e) where
37 recip = P.recip
38
39 instance Epsilon e => ZeroTestable.C (BigFloat e) where
40 isZero = ZeroTestable.defltIsZero
41
42 instance Epsilon e => ToRational.C (BigFloat e) where
43 toRational = fromRational . P.toRational
44
45 instance Epsilon e => RealRing.C (BigFloat e) where
46 floor = fromInteger . P.floor
47
48 instance Epsilon e => RealField.C (BigFloat e)