{-# LANGUAGE TypeFamilies #-} {-# LANGUAGE TypeSynonymInstances #-} {-# LANGUAGE UndecidableInstances #-} {-# LANGUAGE MultiParamTypeClasses #-} {-| Module : Numeric.AERN.RealArithmetic.Basis.Double.MixedFieldOps Description : rounded basic arithmetic operations mixing Double and another type Copyright : (c) Michal Konecny License : BSD3 Maintainer : mikkonecny@gmail.com Stability : experimental Portability : portable Rounded basic arithmetical operations mixing Double and another type. This module is hidden and reexported via its parent Double. -} module Numeric.AERN.RealArithmetic.Basis.Double.MixedFieldOps where import Numeric.AERN.RealArithmetic.Basis.Double.Conversion import Numeric.AERN.RealArithmetic.Basis.Double.NumericOrder import Numeric.AERN.RealArithmetic.Basis.Double.FieldOps import Numeric.AERN.RealArithmetic.NumericOrderRounding instance RoundedMixedAddEffort Double Int where type MixedAddEffortIndicator Double Int = MixedAddEffortIndicatorByConversion Double Int mixedAddDefaultEffort = mixedAddDefaultEffortByConversion instance RoundedMixedAdd Double Int where mixedAddUpEff = mixedAddUpEffByConversion mixedAddDnEff = mixedAddDnEffByConversion instance RoundedMixedMultiplyEffort Double Int where type MixedMultEffortIndicator Double Int = MixedMultEffortIndicatorByConversion Double Int mixedMultDefaultEffort = mixedMultDefaultEffortByConversion instance RoundedMixedMultiply Double Int where mixedMultUpEff = mixedMultUpEffByConversion mixedMultDnEff = mixedMultDnEffByConversion instance RoundedMixedDivideEffort Double Int where type MixedDivEffortIndicator Double Int = MixedDivEffortIndicatorByConversion Double Int mixedDivDefaultEffort = mixedDivDefaultEffortByConversion instance RoundedMixedDivide Double Int where mixedDivUpEff = mixedDivUpEffByConversion mixedDivDnEff = mixedDivDnEffByConversion instance RoundedMixedRingEffort Double Int where type MixedRingOpsEffortIndicator Double Int = () mixedRingOpsDefaultEffort _ _ = () mxringEffortAdd _ _ _ = ((),()) mxringEffortMult _ _ _ = ((),(),()) instance RoundedMixedRing Double Int instance RoundedMixedFieldEffort Double Int where type MixedFieldOpsEffortIndicator Double Int = () mixedFieldOpsDefaultEffort _ _ = () mxfldEffortAdd _ _ _ = ((),()) mxfldEffortMult _ _ _ = ((),(),()) mxfldEffortDiv _ _ _ = ((),(),((),())) instance RoundedMixedField Double Int instance RoundedMixedAddEffort Double Integer where type MixedAddEffortIndicator Double Integer = MixedAddEffortIndicatorByConversion Double Integer mixedAddDefaultEffort = mixedAddDefaultEffortByConversion instance RoundedMixedAdd Double Integer where mixedAddUpEff = mixedAddUpEffByConversion mixedAddDnEff = mixedAddDnEffByConversion instance RoundedMixedMultiplyEffort Double Integer where type MixedMultEffortIndicator Double Integer = MixedMultEffortIndicatorByConversion Double Integer mixedMultDefaultEffort = mixedMultDefaultEffortByConversion instance RoundedMixedMultiply Double Integer where mixedMultUpEff = mixedMultUpEffByConversion mixedMultDnEff = mixedMultDnEffByConversion instance RoundedMixedDivideEffort Double Integer where type MixedDivEffortIndicator Double Integer = MixedDivEffortIndicatorByConversion Double Integer mixedDivDefaultEffort = mixedDivDefaultEffortByConversion instance RoundedMixedDivide Double Integer where mixedDivUpEff = mixedDivUpEffByConversion mixedDivDnEff = mixedDivDnEffByConversion instance RoundedMixedRingEffort Double Integer where type MixedRingOpsEffortIndicator Double Integer = () mixedRingOpsDefaultEffort _ _ = () mxringEffortAdd _ _ _ = ((),()) mxringEffortMult _ _ _ = ((),(),()) instance RoundedMixedRing Double Integer instance RoundedMixedFieldEffort Double Integer where type MixedFieldOpsEffortIndicator Double Integer = () mixedFieldOpsDefaultEffort _ _ = () mxfldEffortAdd _ _ _ = ((),()) mxfldEffortMult _ _ _ = ((),(),()) mxfldEffortDiv _ _ _ = ((),(),((),())) instance RoundedMixedField Double Integer instance RoundedMixedAddEffort Double Rational where type MixedAddEffortIndicator Double Rational = MixedAddEffortIndicatorByConversion Double Rational mixedAddDefaultEffort = mixedAddDefaultEffortByConversion instance RoundedMixedAdd Double Rational where mixedAddUpEff = mixedAddUpEffByConversion mixedAddDnEff = mixedAddDnEffByConversion instance RoundedMixedMultiplyEffort Double Rational where type MixedMultEffortIndicator Double Rational = MixedMultEffortIndicatorByConversion Double Rational mixedMultDefaultEffort = mixedMultDefaultEffortByConversion instance RoundedMixedMultiply Double Rational where mixedMultUpEff = mixedMultUpEffByConversion mixedMultDnEff = mixedMultDnEffByConversion instance RoundedMixedDivideEffort Double Rational where type MixedDivEffortIndicator Double Rational = MixedDivEffortIndicatorByConversion Double Rational mixedDivDefaultEffort = mixedDivDefaultEffortByConversion instance RoundedMixedDivide Double Rational where mixedDivUpEff = mixedDivUpEffByConversion mixedDivDnEff = mixedDivDnEffByConversion instance RoundedMixedRingEffort Double Rational where type MixedRingOpsEffortIndicator Double Rational = () mixedRingOpsDefaultEffort _ _ = () mxringEffortAdd _ _ _ = ((),()) mxringEffortMult _ _ _ = ((),(),()) instance RoundedMixedRing Double Rational instance RoundedMixedFieldEffort Double Rational where type MixedFieldOpsEffortIndicator Double Rational = () mixedFieldOpsDefaultEffort _ _ = () mxfldEffortAdd _ _ _ = ((),()) mxfldEffortMult _ _ _ = ((),(),()) mxfldEffortDiv _ _ _ = ((),(),((),())) instance RoundedMixedField Double Rational instance RoundedMixedAddEffort Double Double where type MixedAddEffortIndicator Double Double = () mixedAddDefaultEffort _ _ = () instance RoundedMixedAdd Double Double where mixedAddUpEff _ a b = addUpEff () a b mixedAddDnEff _ a b = addDnEff () a b instance RoundedMixedMultiplyEffort Double Double where type MixedMultEffortIndicator Double Double = () mixedMultDefaultEffort _ _ = () instance RoundedMixedMultiply Double Double where mixedMultUpEff _ a b = multUpEff () a b mixedMultDnEff _ a b = multDnEff () a b instance RoundedMixedDivideEffort Double Double where type MixedDivEffortIndicator Double Double = () mixedDivDefaultEffort _ _ = () instance RoundedMixedDivide Double Double where mixedDivUpEff _ a b = divUpEff () a b mixedDivDnEff _ a b = divDnEff () a b instance RoundedMixedRingEffort Double Double where type MixedRingOpsEffortIndicator Double Double = () mixedRingOpsDefaultEffort _ _ = () mxringEffortAdd _ _ _ = () mxringEffortMult _ _ _ = () instance RoundedMixedRing Double Double instance RoundedMixedFieldEffort Double Double where type MixedFieldOpsEffortIndicator Double Double = () mixedFieldOpsDefaultEffort _ _ = () mxfldEffortAdd _ _ _ = () mxfldEffortMult _ _ _ = () mxfldEffortDiv _ _ _ = () instance RoundedMixedField Double Double