module AERN2.MP.UseMPFR.Float
(
module AERN2.MP.Precision
, module AERN2.MP.UseMPFR.Float.Type
, module AERN2.MP.UseMPFR.Float.Arithmetic
, distUp, distDown, avgUp, avgDown
, module AERN2.MP.UseMPFR.Float.Conversions
, module AERN2.MP.UseMPFR.Float.Operators
, module AERN2.MP.UseMPFR.Float.Constants
, module AERN2.MP.UseMPFR.Float.Tests
)
where
import MixedTypesNumPrelude
import AERN2.MP.Precision
import AERN2.MP.UseMPFR.Float.Type
import AERN2.MP.UseMPFR.Float.Arithmetic
import AERN2.MP.UseMPFR.Float.Conversions
import AERN2.MP.UseMPFR.Float.Operators
import AERN2.MP.UseMPFR.Float.Constants
import AERN2.MP.UseMPFR.Float.Tests
distUp :: MPFloat -> MPFloat -> MPFloat
distUp x y = if x >= y then x -^ y else y -^ x
distDown :: MPFloat -> MPFloat -> MPFloat
distDown x y = if x >= y then x -. y else y -. x
avgUp :: MPFloat -> MPFloat -> MPFloat
avgUp x y = (x +^ y) /^ (mpFloat 2)
avgDown :: MPFloat -> MPFloat -> MPFloat
avgDown x y = (x +. y) /. (mpFloat 2)