AERN-Real-Double-2011.1: src/Numeric/AERN/RealArithmetic/Basis/Double/NumericOrder.hs
{-# LANGUAGE TypeFamilies #-}
{-|
Module : Numeric.AERN.RealArithmetic.Basis.Double.NumericOrder
Description : numeric order instances for Double
Copyright : (c) Michal Konecny
License : BSD3
Maintainer : mikkonecny@gmail.com
Stability : experimental
Portability : portable
Numeric order Comparison and lattice instances for Double.
This is a private module reexported publicly via its parent.
-}
module Numeric.AERN.RealArithmetic.Basis.Double.NumericOrder
where
import Prelude hiding (EQ,LT,GT)
import Numeric.AERN.Basics.Exception
import Control.Exception
import Numeric.AERN.Basics.PartialOrdering
import qualified Numeric.AERN.Basics.NumericOrder as NumOrd
import Test.QuickCheck
import Numeric.AERN.Misc.QuickCheck
import Test.Framework (testGroup, Test)
import Test.Framework.Providers.QuickCheck2 (testProperty)
import Numeric.AERN.Misc.List
import Numeric.AERN.Misc.Debug
import Data.Maybe
sampleD :: Double
sampleD = 0
nanD :: Double
nanD = 0/0
instance NumOrd.HasLeast Double where
least = - 1/0
instance NumOrd.HasGreatest Double where
greatest = 1/0
instance NumOrd.HasExtrema Double where
instance NumOrd.RoundedLatticeEffort Double where
type NumOrd.MinmaxEffortIndicator Double = ()
minmaxDefaultEffort _ = ()
instance NumOrd.RoundedLattice Double where
maxUpEff _ a b = Prelude.max a b
maxDnEff = NumOrd.maxUpEff
minUpEff _ a b = Prelude.min a b
minDnEff = NumOrd.minUpEff