aern2-real 0.2.9.2 → 0.2.10.0
raw patch · 4 files changed
+34/−16 lines, 4 filesdep ~aern2-mpPVP: major bump suggested
API removals or changes: PVP suggests a major version bump
Dependency ranges changed: aern2-mp
API changes (from Hackage documentation)
+ AERN2.Real: type CanSelectBool k = (CanSelect k, SelectType k ~ Bool)
+ AERN2.Real: type CanSelectCNBool k = (CanSelect k, SelectType k ~ CN Bool)
- AERN2.Real: class (OrderedField r, HasLimits Int r, HasLimits Integer r, HasLimits Rational r, CanSelect (OrderCompareType r r), HasIfThenElseSameType (SelectType (OrderCompareType r r)) r, (CanTestCertainly (SelectType (OrderCompareType r r)))) => RealNumber r
+ AERN2.Real: class (OrderedField r, HasLimitsSameType Int r, HasLimitsSameType Integer r, HasLimitsSameType Rational r, CanTakeCNErrors r, CanSelectCNBool (OrderCompareType r r), OrderCompareType r r ~ OrderCompareType Integer r, OrderCompareType r r ~ OrderCompareType r Integer, OrderCompareType r r ~ OrderCompareType Int r, OrderCompareType r r ~ OrderCompareType r Int, OrderCompareType r r ~ OrderCompareType Rational r, OrderCompareType r r ~ OrderCompareType r Rational, EqCompareType r r ~ OrderCompareType r r, EqCompareType r r ~ EqCompareType Integer r, EqCompareType r r ~ EqCompareType r Integer, EqCompareType r r ~ EqCompareType Int r, EqCompareType r r ~ EqCompareType r Int, EqCompareType r r ~ EqCompareType Rational r, EqCompareType r r ~ EqCompareType r Rational) => RealNumber r
Files
- aern2-real.cabal +3/−3
- changelog.md +3/−0
- src/AERN2/Real.hs +22/−8
- src/AERN2/Real/CKleenean.hs +6/−5
aern2-real.cabal view
@@ -5,7 +5,7 @@ -- see: https://github.com/sol/hpack name: aern2-real-version: 0.2.9.2+version: 0.2.10.0 synopsis: Real numbers as convergent sequences of intervals description: Please see the README on GitHub at <https://github.com/michalkonecny/aern2/#readme> category: Math@@ -60,7 +60,7 @@ ghc-options: -Wall build-depends: QuickCheck- , aern2-mp >=0.2.9.1+ , aern2-mp >=0.2.10.0 , base ==4.* , collect-errors >=0.1.5 , hspec@@ -92,7 +92,7 @@ ghc-options: -threaded -rtsopts -with-rtsopts=-N -Wall build-depends: QuickCheck- , aern2-mp >=0.2.9.1+ , aern2-mp >=0.2.10.0 , aern2-real , base ==4.* , collect-errors >=0.1.5
changelog.md view
@@ -1,5 +1,8 @@ # Change log for aern2-real +* v 0.2.10 2022-08-20+ * add to RealNumber: HasLimitsSameType, CanSelectCNBool, same compare types+ * SelectType CKleenean = CN Bool * v 0.2.9.2 2022-08-19 * add to RealNumber: HasIfThenElse for its SelectType * v 0.2.9 2022-07-13 (update in aern2-mp)
src/AERN2/Real.hs view
@@ -23,7 +23,8 @@ -- * limits HasLimits(..), -- * lazy Kleeneans- CKleenean, CanBeCKleenean, ckleenean, CanSelect(..),+ CKleenean, CanBeCKleenean, ckleenean, + CanSelect(..), CanSelectBool, CanSelectCNBool, -- * extracting approximations CanExtractApproximation(..), (?), bits, prec, -- * abstract real numbers@@ -45,19 +46,32 @@ import MixedTypesNumPrelude -- import qualified Prelude as P-import GHC.TypeLits+import GHC.TypeLits ( KnownNat )+import Numeric.CollectErrors (CanTakeCNErrors) -- import Text.Printf -- -- import AERN2.MP.Dyadic class (OrderedField r- , HasLimits Int r- , HasLimits Integer r- , HasLimits Rational r- , CanSelect (OrderCompareType r r)- , HasIfThenElseSameType (SelectType (OrderCompareType r r)) r- , (CanTestCertainly (SelectType (OrderCompareType r r))))+ , HasLimitsSameType Int r+ , HasLimitsSameType Integer r+ , HasLimitsSameType Rational r+ , CanTakeCNErrors r+ , CanSelectCNBool (OrderCompareType r r)+ , OrderCompareType r r ~ OrderCompareType Integer r+ , OrderCompareType r r ~ OrderCompareType r Integer+ , OrderCompareType r r ~ OrderCompareType Int r+ , OrderCompareType r r ~ OrderCompareType r Int+ , OrderCompareType r r ~ OrderCompareType Rational r+ , OrderCompareType r r ~ OrderCompareType r Rational+ , EqCompareType r r ~ OrderCompareType r r+ , EqCompareType r r ~ EqCompareType Integer r+ , EqCompareType r r ~ EqCompareType r Integer+ , EqCompareType r r ~ EqCompareType Int r+ , EqCompareType r r ~ EqCompareType r Int+ , EqCompareType r r ~ EqCompareType Rational r+ , EqCompareType r r ~ EqCompareType r Rational) => RealNumber r
src/AERN2/Real/CKleenean.hs view
@@ -53,16 +53,17 @@ or2 = lift2 or2 instance CanSelect CKleenean where- type SelectType CKleenean = Bool+ type SelectType CKleenean = CN Bool select (CSequence s1) (CSequence s2) = aux s1 s2 where aux (k1 : rest1) (k2 : rest2) = case (CN.toEither k1, CN.toEither k2) of- (Right CertainTrue, _) -> True - (_, Right CertainTrue) -> False- (Right CertainFalse, Right CertainFalse) -> error "select: Both branches failed!"+ (Right CertainTrue, _) -> cn True + (_, Right CertainTrue) -> cn False+ (Right CertainFalse, Right CertainFalse) -> + CN.noValueNumErrorCertain $ CN.NumError "select: Both branches failed!" _ -> aux rest1 rest2- aux _ _ = error "select: internal error"+ aux _ _ = CN.noValueNumErrorCertain $ CN.NumError "select: internal error" instance (CanUnionCNSameType t) => HasIfThenElse CKleenean (CSequence t)