module AERN2.MP.Float.Operators
(
(+^), (+.)
, (-^), (-.)
, (*^), (*.)
, (/^), (/.)
, fromIntegerUp, fromIntegerDown
, fromRationalUp, fromRationalDown
, cosUp, cosDown, sinUp, sinDown
, sqrtUp, sqrtDown, expUp, expDown, logUp, logDown
)
where
import MixedTypesNumPrelude
import AERN2.MP.Precision
import AERN2.MP.Float.Auxi
import AERN2.MP.Float.Type
import AERN2.MP.Float.Arithmetic
import AERN2.MP.Float.Conversions
infixl 6 +^, -^, +., -.
infixl 7 *^, *., /^, /.
(+^) :: MPFloat -> MPFloat -> MPFloat
+^ :: MPFloat -> MPFloat -> MPFloat
(+^) = forall t1 t2.
(t1 -> t2 -> BoundsCEDU MPFloat) -> t1 -> t2 -> MPFloat
up2 MPFloat -> MPFloat -> BoundsCEDU MPFloat
addCEDU
(-^) :: MPFloat -> MPFloat -> MPFloat
-^ :: MPFloat -> MPFloat -> MPFloat
(-^) = forall t1 t2.
(t1 -> t2 -> BoundsCEDU MPFloat) -> t1 -> t2 -> MPFloat
up2 MPFloat -> MPFloat -> BoundsCEDU MPFloat
subCEDU
(*^) :: MPFloat -> MPFloat -> MPFloat
*^ :: MPFloat -> MPFloat -> MPFloat
(*^) = forall t1 t2.
(t1 -> t2 -> BoundsCEDU MPFloat) -> t1 -> t2 -> MPFloat
up2 MPFloat -> MPFloat -> BoundsCEDU MPFloat
mulCEDU
(/^) :: MPFloat -> MPFloat -> MPFloat
/^ :: MPFloat -> MPFloat -> MPFloat
(/^) = forall t1 t2.
(t1 -> t2 -> BoundsCEDU MPFloat) -> t1 -> t2 -> MPFloat
up2 MPFloat -> MPFloat -> BoundsCEDU MPFloat
divCEDU
fromIntegerUp :: Precision -> Integer -> MPFloat
fromIntegerUp :: Precision -> Integer -> MPFloat
fromIntegerUp Precision
p = forall t. (t -> BoundsCEDU MPFloat) -> t -> MPFloat
up1 (Precision -> Integer -> BoundsCEDU MPFloat
fromIntegerCEDU Precision
p)
fromRationalUp :: Precision -> Rational -> MPFloat
fromRationalUp :: Precision -> Rational -> MPFloat
fromRationalUp Precision
p = forall t. (t -> BoundsCEDU MPFloat) -> t -> MPFloat
up1 (Precision -> Rational -> BoundsCEDU MPFloat
fromRationalCEDU Precision
p)
cosUp :: MPFloat -> MPFloat
cosUp :: MPFloat -> MPFloat
cosUp = forall t. (t -> BoundsCEDU MPFloat) -> t -> MPFloat
up1 MPFloat -> BoundsCEDU MPFloat
cosCEDU
sinUp :: MPFloat -> MPFloat
sinUp :: MPFloat -> MPFloat
sinUp = forall t. (t -> BoundsCEDU MPFloat) -> t -> MPFloat
up1 MPFloat -> BoundsCEDU MPFloat
sinCEDU
sqrtUp :: MPFloat -> MPFloat
sqrtUp :: MPFloat -> MPFloat
sqrtUp = forall t. (t -> BoundsCEDU MPFloat) -> t -> MPFloat
up1 MPFloat -> BoundsCEDU MPFloat
sqrtCEDU
expUp :: MPFloat -> MPFloat
expUp :: MPFloat -> MPFloat
expUp = forall t. (t -> BoundsCEDU MPFloat) -> t -> MPFloat
up1 MPFloat -> BoundsCEDU MPFloat
expCEDU
logUp :: MPFloat -> MPFloat
logUp :: MPFloat -> MPFloat
logUp = forall t. (t -> BoundsCEDU MPFloat) -> t -> MPFloat
up1 MPFloat -> BoundsCEDU MPFloat
logCEDU
(+.) :: MPFloat -> MPFloat -> MPFloat
+. :: MPFloat -> MPFloat -> MPFloat
(+.) = forall t1 t2.
(t1 -> t2 -> BoundsCEDU MPFloat) -> t1 -> t2 -> MPFloat
down2 MPFloat -> MPFloat -> BoundsCEDU MPFloat
addCEDU
(-.) :: MPFloat -> MPFloat -> MPFloat
-. :: MPFloat -> MPFloat -> MPFloat
(-.) = forall t1 t2.
(t1 -> t2 -> BoundsCEDU MPFloat) -> t1 -> t2 -> MPFloat
down2 MPFloat -> MPFloat -> BoundsCEDU MPFloat
subCEDU
(*.) :: MPFloat -> MPFloat -> MPFloat
*. :: MPFloat -> MPFloat -> MPFloat
(*.) = forall t1 t2.
(t1 -> t2 -> BoundsCEDU MPFloat) -> t1 -> t2 -> MPFloat
down2 MPFloat -> MPFloat -> BoundsCEDU MPFloat
mulCEDU
(/.) :: MPFloat -> MPFloat -> MPFloat
/. :: MPFloat -> MPFloat -> MPFloat
(/.) = forall t1 t2.
(t1 -> t2 -> BoundsCEDU MPFloat) -> t1 -> t2 -> MPFloat
down2 MPFloat -> MPFloat -> BoundsCEDU MPFloat
divCEDU
fromIntegerDown :: Precision -> Integer -> MPFloat
fromIntegerDown :: Precision -> Integer -> MPFloat
fromIntegerDown Precision
p = forall t. (t -> BoundsCEDU MPFloat) -> t -> MPFloat
down1 (Precision -> Integer -> BoundsCEDU MPFloat
fromIntegerCEDU Precision
p)
fromRationalDown :: Precision -> Rational -> MPFloat
fromRationalDown :: Precision -> Rational -> MPFloat
fromRationalDown Precision
p = forall t. (t -> BoundsCEDU MPFloat) -> t -> MPFloat
down1 (Precision -> Rational -> BoundsCEDU MPFloat
fromRationalCEDU Precision
p)
cosDown :: MPFloat -> MPFloat
cosDown :: MPFloat -> MPFloat
cosDown = forall t. (t -> BoundsCEDU MPFloat) -> t -> MPFloat
down1 MPFloat -> BoundsCEDU MPFloat
cosCEDU
sinDown :: MPFloat -> MPFloat
sinDown :: MPFloat -> MPFloat
sinDown = forall t. (t -> BoundsCEDU MPFloat) -> t -> MPFloat
down1 MPFloat -> BoundsCEDU MPFloat
sinCEDU
sqrtDown :: MPFloat -> MPFloat
sqrtDown :: MPFloat -> MPFloat
sqrtDown = forall t. (t -> BoundsCEDU MPFloat) -> t -> MPFloat
down1 MPFloat -> BoundsCEDU MPFloat
sqrtCEDU
expDown :: MPFloat -> MPFloat
expDown :: MPFloat -> MPFloat
expDown = forall t. (t -> BoundsCEDU MPFloat) -> t -> MPFloat
down1 MPFloat -> BoundsCEDU MPFloat
expCEDU
logDown :: MPFloat -> MPFloat
logDown :: MPFloat -> MPFloat
logDown = forall t. (t -> BoundsCEDU MPFloat) -> t -> MPFloat
down1 MPFloat -> BoundsCEDU MPFloat
logCEDU
up1, down1 ::
(t -> BoundsCEDU MPFloat) ->
(t -> MPFloat)
up1 :: forall t. (t -> BoundsCEDU MPFloat) -> t -> MPFloat
up1 t -> BoundsCEDU MPFloat
op t
x = forall a. BoundsCEDU a -> a
ceduUp forall a b. (a -> b) -> a -> b
$ t -> BoundsCEDU MPFloat
op t
x
down1 :: forall t. (t -> BoundsCEDU MPFloat) -> t -> MPFloat
down1 t -> BoundsCEDU MPFloat
op t
x = forall a. BoundsCEDU a -> a
ceduDown forall a b. (a -> b) -> a -> b
$ t -> BoundsCEDU MPFloat
op t
x
up2, down2 ::
(t1 -> t2 -> BoundsCEDU MPFloat) ->
(t1 -> t2 -> MPFloat)
up2 :: forall t1 t2.
(t1 -> t2 -> BoundsCEDU MPFloat) -> t1 -> t2 -> MPFloat
up2 t1 -> t2 -> BoundsCEDU MPFloat
op t1
x t2
y = forall a. BoundsCEDU a -> a
ceduUp forall a b. (a -> b) -> a -> b
$ t1 -> t2 -> BoundsCEDU MPFloat
op t1
x t2
y
down2 :: forall t1 t2.
(t1 -> t2 -> BoundsCEDU MPFloat) -> t1 -> t2 -> MPFloat
down2 t1 -> t2 -> BoundsCEDU MPFloat
op t1
x t2
y = forall a. BoundsCEDU a -> a
ceduDown forall a b. (a -> b) -> a -> b
$ t1 -> t2 -> BoundsCEDU MPFloat
op t1
x t2
y