X-Git-Url: http://gitweb.michael.orlitzky.com/?a=blobdiff_plain;f=src%2FBigFloat.hs;h=cc228bead187898a255eae3d3200a4edad546d10;hb=f9a18f9f5685f86697475529033096e8c6f6e627;hp=e23ebe6833bd674be0d5ea1f65dbfe540ec72baf;hpb=fe73028041fe3becce6ce1ff268181d55d54a011;p=numerical-analysis.git diff --git a/src/BigFloat.hs b/src/BigFloat.hs index e23ebe6..cc228be 100644 --- a/src/BigFloat.hs +++ b/src/BigFloat.hs @@ -1,7 +1,8 @@ {-# LANGUAGE RebindableSyntax #-} module BigFloat - (module Data.Number.BigFloat) + (module Data.Number.BigFloat, + R) where import Data.Number.BigFloat @@ -10,6 +11,8 @@ import NumericPrelude hiding (abs) import qualified Algebra.Absolute as Absolute import qualified Algebra.Additive as Additive import qualified Algebra.Field as Field +import qualified Algebra.RealField as RealField +import qualified Algebra.RealRing as RealRing import qualified Algebra.Ring as Ring import qualified Algebra.ToRational as ToRational import qualified Algebra.ZeroTestable as ZeroTestable @@ -19,7 +22,7 @@ type R = BigFloat Prec50 instance Epsilon e => Additive.C (BigFloat e) where (+) = (P.+) - zero = (P.fromInteger 0) + zero = 0 negate = (P.negate) instance Epsilon e => Ring.C (BigFloat e) where @@ -38,3 +41,8 @@ instance Epsilon e => ZeroTestable.C (BigFloat e) where instance Epsilon e => ToRational.C (BigFloat e) where toRational = fromRational . P.toRational + +instance Epsilon e => RealRing.C (BigFloat e) where + floor = fromInteger . P.floor + +instance Epsilon e => RealField.C (BigFloat e)