AERN-Real-Interval-2011.1: src/Numeric/AERN/RealArithmetic/Interval/SpecialConst.hs
{-# LANGUAGE TypeFamilies #-}
{-# LANGUAGE UndecidableInstances #-}
{-# LANGUAGE FlexibleContexts #-}
{-# LANGUAGE ImplicitParams #-}
{-|
Module : Numeric.AERN.RealArithmetic.Interval.SpecialConst
Description : common constants such as pi
Copyright : (c) Michal Konecny
License : BSD3
Maintainer : mikkonecny@gmail.com
Stability : experimental
Portability : portable
Common constants such as pi.
This module is hidden and reexported via its parent Interval.
-}
module Numeric.AERN.RealArithmetic.Interval.SpecialConst
()
where
import qualified Numeric.AERN.RealArithmetic.NumericOrderRounding as ArithUpDn
import qualified Numeric.AERN.RealArithmetic.RefinementOrderRounding as ArithInOut
import Numeric.AERN.Basics.Interval
instance (ArithUpDn.RoundedSpecialConstEffort e) =>
(ArithInOut.RoundedSpecialConstEffort (Interval e))
where
type ArithInOut.SpecialConstEffortIndicator (Interval e) =
ArithUpDn.SpecialConstEffortIndicator e
specialConstDefaultEffort (Interval l r) =
ArithUpDn.specialConstDefaultEffort l
instance (ArithUpDn.RoundedSpecialConst e) =>
(ArithInOut.RoundedSpecialConst (Interval e))
where
piInEff effort =
Interval (ArithUpDn.piUpEff effort) (ArithUpDn.piDnEff effort)
piOutEff effort =
Interval (ArithUpDn.piDnEff effort) (ArithUpDn.piUpEff effort)
eInEff effort =
Interval (ArithUpDn.eUpEff effort) (ArithUpDn.eDnEff effort)
eOutEff effort =
Interval (ArithUpDn.eDnEff effort) (ArithUpDn.eUpEff effort)