AERN-Real-2011.1: src/Numeric/AERN/RealArithmetic/RefinementOrderRounding/FieldOps.hs-boot
{-
this file is needed to break the following dependency cycles:
Numeric.AERN.RealArithmetic.NumericOrderRounding.InPlace.Elementary
imports: Numeric.AERN.RealArithmetic.Measures
Numeric.AERN.RealArithmetic.Laws
Numeric.AERN.RealArithmetic.NumericOrderRounding.FieldOps
Numeric.AERN.RealArithmetic.NumericOrderRounding.Elementary
Numeric.AERN.RealArithmetic.Measures
imports: Numeric.AERN.RealArithmetic.RefinementOrderRounding.FieldOps
Numeric.AERN.RealArithmetic.RefinementOrderRounding.FieldOps
imports: Numeric.AERN.RealArithmetic.Measures
Numeric.AERN.RealArithmetic.Laws
Numeric.AERN.RealArithmetic.NumericOrderRounding
Numeric.AERN.RealArithmetic.Laws
imports: Numeric.AERN.RealArithmetic.Measures
Numeric.AERN.RealArithmetic.NumericOrderRounding
imports: Numeric.AERN.RealArithmetic.NumericOrderRounding.InPlace
Numeric.AERN.RealArithmetic.NumericOrderRounding.Elementary
Numeric.AERN.RealArithmetic.NumericOrderRounding.MixedFieldOps
Numeric.AERN.RealArithmetic.NumericOrderRounding.FieldOps
Numeric.AERN.RealArithmetic.NumericOrderRounding.InPlace
imports: Numeric.AERN.RealArithmetic.NumericOrderRounding.InPlace.Elementary
Numeric.AERN.RealArithmetic.NumericOrderRounding.InPlace.MixedFieldOps
Numeric.AERN.RealArithmetic.NumericOrderRounding.InPlace.FieldOps
Numeric.AERN.RealArithmetic.NumericOrderRounding.InPlace.MixedFieldOps
imports: Numeric.AERN.RealArithmetic.Measures
Numeric.AERN.RealArithmetic.Laws
Numeric.AERN.RealArithmetic.NumericOrderRounding.FieldOps
Numeric.AERN.RealArithmetic.NumericOrderRounding.InPlace.FieldOps
Numeric.AERN.RealArithmetic.NumericOrderRounding.MixedFieldOps
Numeric.AERN.RealArithmetic.NumericOrderRounding.FieldOps
imports: Numeric.AERN.RealArithmetic.Measures
Numeric.AERN.RealArithmetic.Laws
Numeric.AERN.RealArithmetic.NumericOrderRounding.InPlace.FieldOps
imports: Numeric.AERN.RealArithmetic.Measures
Numeric.AERN.RealArithmetic.Laws
Numeric.AERN.RealArithmetic.NumericOrderRounding.FieldOps
Numeric.AERN.RealArithmetic.NumericOrderRounding.MixedFieldOps
imports: Numeric.AERN.RealArithmetic.Measures
Numeric.AERN.RealArithmetic.Laws
Numeric.AERN.RealArithmetic.NumericOrderRounding.FieldOps
Numeric.AERN.RealArithmetic.NumericOrderRounding.Elementary
imports: Numeric.AERN.RealArithmetic.Measures
Numeric.AERN.RealArithmetic.Laws
Numeric.AERN.RealArithmetic.NumericOrderRounding.FieldOps
-}
{-# LANGUAGE TypeFamilies #-}
{-# LANGUAGE ImplicitParams #-}
module Numeric.AERN.RealArithmetic.RefinementOrderRounding.FieldOps where
import Numeric.AERN.RealArithmetic.ExactOps
import Numeric.AERN.RealArithmetic.RefinementOrderRounding.Conversion
import Numeric.AERN.Basics.Effort
import qualified Numeric.AERN.Basics.NumericOrder as NumOrd
class RoundedAddEffort t where
type AddEffortIndicator t
addDefaultEffort :: t -> AddEffortIndicator t
class (RoundedAddEffort t) => RoundedAdd t where
addInEff :: AddEffortIndicator t -> t -> t -> t
addOutEff :: AddEffortIndicator t -> t -> t -> t
class (RoundedAdd t, Neg t) => RoundedSubtr t where
subtrInEff :: (AddEffortIndicator t) -> t -> t -> t
subtrOutEff :: (AddEffortIndicator t) -> t -> t -> t
subtrInEff effort a b = addInEff effort a (neg b)
subtrOutEff effort a b = addOutEff effort a (neg b)