{-# LANGUAGE StandaloneDeriving #-}
{-# OPTIONS_GHC -Wno-orphans #-}
module AERN2.MP.Float.PreludeNum
(
)
where
import MixedTypesNumPrelude
import qualified Prelude as P
import AERN2.MP.Float.Auxi
import AERN2.MP.Float.Type
import AERN2.MP.Float.Arithmetic
deriving instance P.Eq MPFloat
deriving instance P.Ord MPFloat
instance P.Num MPFloat where
fromInteger :: Integer -> MPFloat
fromInteger = Approx -> MPFloat
MPFloat (Approx -> MPFloat) -> (Integer -> Approx) -> Integer -> MPFloat
forall b c a. (b -> c) -> (a -> b) -> a -> c
. Integer -> Approx
forall a. Num a => Integer -> a
P.fromInteger
negate :: MPFloat -> MPFloat
negate = (Approx -> Approx) -> MPFloat -> MPFloat
lift1 Approx -> Approx
forall a. Num a => a -> a
P.negate
abs :: MPFloat -> MPFloat
abs = (Approx -> Approx) -> MPFloat -> MPFloat
lift1 Approx -> Approx
forall a. Num a => a -> a
P.abs
signum :: MPFloat -> MPFloat
signum = (Approx -> Approx) -> MPFloat -> MPFloat
lift1 Approx -> Approx
forall a. Num a => a -> a
P.signum
+ :: MPFloat -> MPFloat -> MPFloat
(+) = (MPFloat -> MPFloat -> BoundsCEDU MPFloat)
-> MPFloat -> MPFloat -> MPFloat
forall t1 t2.
(t1 -> t2 -> BoundsCEDU MPFloat) -> t1 -> t2 -> MPFloat
c2 MPFloat -> MPFloat -> BoundsCEDU MPFloat
addCEDU
(-) = (MPFloat -> MPFloat -> BoundsCEDU MPFloat)
-> MPFloat -> MPFloat -> MPFloat
forall t1 t2.
(t1 -> t2 -> BoundsCEDU MPFloat) -> t1 -> t2 -> MPFloat
c2 MPFloat -> MPFloat -> BoundsCEDU MPFloat
subCEDU
* :: MPFloat -> MPFloat -> MPFloat
(*) = (MPFloat -> MPFloat -> BoundsCEDU MPFloat)
-> MPFloat -> MPFloat -> MPFloat
forall t1 t2.
(t1 -> t2 -> BoundsCEDU MPFloat) -> t1 -> t2 -> MPFloat
c2 MPFloat -> MPFloat -> BoundsCEDU MPFloat
mulCEDU
instance P.Fractional MPFloat where
fromRational :: Rational -> MPFloat
fromRational = Approx -> MPFloat
MPFloat (Approx -> MPFloat) -> (Rational -> Approx) -> Rational -> MPFloat
forall b c a. (b -> c) -> (a -> b) -> a -> c
. Rational -> Approx
forall a. Fractional a => Rational -> a
P.fromRational
/ :: MPFloat -> MPFloat -> MPFloat
(/) = (MPFloat -> MPFloat -> BoundsCEDU MPFloat)
-> MPFloat -> MPFloat -> MPFloat
forall t1 t2.
(t1 -> t2 -> BoundsCEDU MPFloat) -> t1 -> t2 -> MPFloat
c2 MPFloat -> MPFloat -> BoundsCEDU MPFloat
divCEDU
instance P.Floating MPFloat where
sin :: MPFloat -> MPFloat
sin = (MPFloat -> BoundsCEDU MPFloat) -> MPFloat -> MPFloat
forall t. (t -> BoundsCEDU MPFloat) -> t -> MPFloat
c1 MPFloat -> BoundsCEDU MPFloat
sinCEDU
cos :: MPFloat -> MPFloat
cos = (MPFloat -> BoundsCEDU MPFloat) -> MPFloat -> MPFloat
forall t. (t -> BoundsCEDU MPFloat) -> t -> MPFloat
c1 MPFloat -> BoundsCEDU MPFloat
cosCEDU
exp :: MPFloat -> MPFloat
exp = (MPFloat -> BoundsCEDU MPFloat) -> MPFloat -> MPFloat
forall t. (t -> BoundsCEDU MPFloat) -> t -> MPFloat
c1 MPFloat -> BoundsCEDU MPFloat
expCEDU
log :: MPFloat -> MPFloat
log = (MPFloat -> BoundsCEDU MPFloat) -> MPFloat -> MPFloat
forall t. (t -> BoundsCEDU MPFloat) -> t -> MPFloat
c1 MPFloat -> BoundsCEDU MPFloat
logCEDU
pi :: MPFloat
pi = [Char] -> MPFloat
forall a. HasCallStack => [Char] -> a
error [Char]
"Prelude.Floating MPFloat: pi not defined"
asin :: MPFloat -> MPFloat
asin = [Char] -> MPFloat -> MPFloat
forall a. HasCallStack => [Char] -> a
error [Char]
"Prelude.Floating MPFloat: asin not defined yet"
acos :: MPFloat -> MPFloat
acos = [Char] -> MPFloat -> MPFloat
forall a. HasCallStack => [Char] -> a
error [Char]
"Prelude.Floating MPFloat: acos not defined yet"
atan :: MPFloat -> MPFloat
atan = [Char] -> MPFloat -> MPFloat
forall a. HasCallStack => [Char] -> a
error [Char]
"Prelude.Floating MPFloat: atan not defined yet"
sinh :: MPFloat -> MPFloat
sinh = [Char] -> MPFloat -> MPFloat
forall a. HasCallStack => [Char] -> a
error [Char]
"Prelude.Floating MPFloat: sinh not defined yet"
cosh :: MPFloat -> MPFloat
cosh = [Char] -> MPFloat -> MPFloat
forall a. HasCallStack => [Char] -> a
error [Char]
"Prelude.Floating MPFloat: cosh not defined yet"
asinh :: MPFloat -> MPFloat
asinh = [Char] -> MPFloat -> MPFloat
forall a. HasCallStack => [Char] -> a
error [Char]
"Prelude.Floating MPFloat: asinh not defined yet"
acosh :: MPFloat -> MPFloat
acosh = [Char] -> MPFloat -> MPFloat
forall a. HasCallStack => [Char] -> a
error [Char]
"Prelude.Floating MPFloat: acosh not defined yet"
atanh :: MPFloat -> MPFloat
atanh = [Char] -> MPFloat -> MPFloat
forall a. HasCallStack => [Char] -> a
error [Char]
"Prelude.Floating MPFloat: atanh not defined yet"
c1 ::
(t -> BoundsCEDU MPFloat) ->
(t -> MPFloat)
c1 :: (t -> BoundsCEDU MPFloat) -> t -> MPFloat
c1 t -> BoundsCEDU MPFloat
op t
x = BoundsCEDU MPFloat -> MPFloat
forall a. BoundsCEDU a -> a
ceduCentre (BoundsCEDU MPFloat -> MPFloat) -> BoundsCEDU MPFloat -> MPFloat
forall a b. (a -> b) -> a -> b
$ t -> BoundsCEDU MPFloat
op t
x
c2 ::
(t1 -> t2 -> BoundsCEDU MPFloat) ->
(t1 -> t2 -> MPFloat)
c2 :: (t1 -> t2 -> BoundsCEDU MPFloat) -> t1 -> t2 -> MPFloat
c2 t1 -> t2 -> BoundsCEDU MPFloat
op t1
x t2
y = BoundsCEDU MPFloat -> MPFloat
forall a. BoundsCEDU a -> a
ceduCentre (BoundsCEDU MPFloat -> MPFloat) -> BoundsCEDU MPFloat -> MPFloat
forall a b. (a -> b) -> a -> b
$ t1 -> t2 -> BoundsCEDU MPFloat
op t1
x t2
y
instance P.Real MPFloat where
toRational :: MPFloat -> Rational
toRational (MPFloat Approx
a) = Approx -> Rational
forall a. Real a => a -> Rational
toRational Approx
a