{-# OPTIONS_GHC -Wno-orphans #-}
{-# LANGUAGE DataKinds #-}
{-# LANGUAGE PolyKinds #-}
{-# LANGUAGE RankNTypes #-}
{-# LANGUAGE GeneralizedNewtypeDeriving #-}
{-# LANGUAGE StandaloneDeriving #-}
module AERN2.MP.WithCurrentPrec.Limit
()
where
import MixedTypesNumPrelude
import AERN2.MP.Ball
import AERN2.Limit
import AERN2.MP.WithCurrentPrec.Type
instance
(HasLimits ix (CN MPBall -> CN MPBall)
, LimitType ix (CN MPBall -> CN MPBall) ~ (CN MPBall -> CN MPBall)
,HasCurrentPrecision p)
=>
HasLimits ix (WithCurrentPrec (CN MPBall) p)
where
type LimitType ix (WithCurrentPrec (CN MPBall) p) = WithCurrentPrec (CN MPBall) p
limit :: (ix -> WithCurrentPrec (CN MPBall) p)
-> LimitType ix (WithCurrentPrec (CN MPBall) p)
limit (ix -> WithCurrentPrec (CN MPBall) p
s :: ix -> (WithCurrentPrec (CN MPBall) p)) =
CN MPBall -> WithCurrentPrec (CN MPBall) p
forall k t (p :: k). t -> WithCurrentPrec t p
WithCurrentPrec (CN MPBall -> WithCurrentPrec (CN MPBall) p)
-> CN MPBall -> WithCurrentPrec (CN MPBall) p
forall a b. (a -> b) -> a -> b
$ (ix -> CN MPBall -> CN MPBall)
-> LimitType ix (CN MPBall -> CN MPBall)
forall ix s. HasLimits ix s => (ix -> s) -> LimitType ix s
limit (ix -> CN MPBall -> CN MPBall
snop) (CN MPBall -> CN MPBall) -> CN MPBall -> CN MPBall
forall a b. (a -> b) -> a -> b
$ CN MPBall
sample
where
sample :: CN MPBall
sample :: CN MPBall
sample = Precision -> CN MPBall -> CN MPBall
forall t. CanSetPrecision t => Precision -> t -> t
setPrecision (WithCurrentPrec MPBall p -> Precision
forall k (p :: k) (proxy :: k -> *).
HasCurrentPrecision p =>
proxy p -> Precision
getCurrentPrecision WithCurrentPrec MPBall p
sampleP) (MPBall -> CN MPBall
forall v. v -> CN v
cn (MPBall -> CN MPBall) -> MPBall -> CN MPBall
forall a b. (a -> b) -> a -> b
$ Integer -> MPBall
forall t. CanBeMPBall t => t -> MPBall
mpBall Integer
0)
sampleP :: WithCurrentPrec MPBall p
sampleP :: WithCurrentPrec MPBall p
sampleP = [Char] -> WithCurrentPrec MPBall p
forall a. HasCallStack => [Char] -> a
error [Char]
"sampleP is not defined, it is only a type proxy"
snop :: ix -> (CN MPBall -> CN MPBall)
snop :: ix -> CN MPBall -> CN MPBall
snop ix
ix CN MPBall
_sample = WithCurrentPrec (CN MPBall) p -> CN MPBall
forall t k (p :: k). WithCurrentPrec t p -> t
unWithCurrentPrec (WithCurrentPrec (CN MPBall) p -> CN MPBall)
-> WithCurrentPrec (CN MPBall) p -> CN MPBall
forall a b. (a -> b) -> a -> b
$ ix -> WithCurrentPrec (CN MPBall) p
s ix
ix