{-# 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 forall b c a. (b -> c) -> (a -> b) -> a -> c
. forall a. Num a => Integer -> a
P.fromInteger
negate :: MPFloat -> MPFloat
negate = (Approx -> Approx) -> MPFloat -> MPFloat
lift1 forall a. Num a => a -> a
P.negate
abs :: MPFloat -> MPFloat
abs = (Approx -> Approx) -> MPFloat -> MPFloat
lift1 forall a. Num a => a -> a
P.abs
signum :: MPFloat -> MPFloat
signum = (Approx -> Approx) -> MPFloat -> MPFloat
lift1 forall a. Num a => a -> a
P.signum
+ :: MPFloat -> MPFloat -> MPFloat
(+) = forall t1 t2.
(t1 -> t2 -> BoundsCEDU MPFloat) -> t1 -> t2 -> MPFloat
c2 MPFloat -> MPFloat -> BoundsCEDU MPFloat
addCEDU
(-) = forall t1 t2.
(t1 -> t2 -> BoundsCEDU MPFloat) -> t1 -> t2 -> MPFloat
c2 MPFloat -> MPFloat -> BoundsCEDU MPFloat
subCEDU
* :: 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 forall b c a. (b -> c) -> (a -> b) -> a -> c
. forall a. Fractional a => Rational -> a
P.fromRational
/ :: 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 = forall t. (t -> BoundsCEDU MPFloat) -> t -> MPFloat
c1 MPFloat -> BoundsCEDU MPFloat
sinCEDU
cos :: MPFloat -> MPFloat
cos = forall t. (t -> BoundsCEDU MPFloat) -> t -> MPFloat
c1 MPFloat -> BoundsCEDU MPFloat
cosCEDU
exp :: MPFloat -> MPFloat
exp = forall t. (t -> BoundsCEDU MPFloat) -> t -> MPFloat
c1 MPFloat -> BoundsCEDU MPFloat
expCEDU
log :: MPFloat -> MPFloat
log = forall t. (t -> BoundsCEDU MPFloat) -> t -> MPFloat
c1 MPFloat -> BoundsCEDU MPFloat
logCEDU
pi :: MPFloat
pi = forall a. HasCallStack => [Char] -> a
error [Char]
"Prelude.Floating MPFloat: pi not defined"
asin :: MPFloat -> MPFloat
asin = forall a. HasCallStack => [Char] -> a
error [Char]
"Prelude.Floating MPFloat: asin not defined yet"
acos :: MPFloat -> MPFloat
acos = forall a. HasCallStack => [Char] -> a
error [Char]
"Prelude.Floating MPFloat: acos not defined yet"
atan :: MPFloat -> MPFloat
atan = forall a. HasCallStack => [Char] -> a
error [Char]
"Prelude.Floating MPFloat: atan not defined yet"
sinh :: MPFloat -> MPFloat
sinh = forall a. HasCallStack => [Char] -> a
error [Char]
"Prelude.Floating MPFloat: sinh not defined yet"
cosh :: MPFloat -> MPFloat
cosh = forall a. HasCallStack => [Char] -> a
error [Char]
"Prelude.Floating MPFloat: cosh not defined yet"
asinh :: MPFloat -> MPFloat
asinh = forall a. HasCallStack => [Char] -> a
error [Char]
"Prelude.Floating MPFloat: asinh not defined yet"
acosh :: MPFloat -> MPFloat
acosh = forall a. HasCallStack => [Char] -> a
error [Char]
"Prelude.Floating MPFloat: acosh not defined yet"
atanh :: MPFloat -> MPFloat
atanh = forall a. HasCallStack => [Char] -> a
error [Char]
"Prelude.Floating MPFloat: atanh not defined yet"
c1 ::
(t -> BoundsCEDU MPFloat) ->
(t -> MPFloat)
c1 :: forall t. (t -> BoundsCEDU MPFloat) -> t -> MPFloat
c1 t -> BoundsCEDU MPFloat
op t
x = forall a. BoundsCEDU a -> a
ceduCentre forall a b. (a -> b) -> a -> b
$ t -> BoundsCEDU MPFloat
op t
x
c2 ::
(t1 -> t2 -> BoundsCEDU MPFloat) ->
(t1 -> t2 -> MPFloat)
c2 :: forall t1 t2.
(t1 -> t2 -> BoundsCEDU MPFloat) -> t1 -> t2 -> MPFloat
c2 t1 -> t2 -> BoundsCEDU MPFloat
op t1
x t2
y = forall a. BoundsCEDU a -> a
ceduCentre 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) = forall a. Real a => a -> Rational
toRational Approx
a