Copyright | (c) Michal Konecny 2013 2021 |
---|---|
License | BSD3 |
Maintainer | mikkonecny@gmail.com |
Stability | experimental |
Portability | portable |
Safe Haskell | Safe-Inferred |
Language | Haskell2010 |
Deriving ranges for variables from hypotheses inside a formula
Synopsis
- _f1 :: F
- _f2 :: F
- _f3 :: F
- _f4 :: F
- _f5 :: F
- type VarName = String
- deriveBoundsAndSimplify :: F -> (F, VarMap, [VarName])
- type VarBoundMap = Map VarName (Maybe Rational, Maybe Rational)
- scanHypotheses :: F -> VarBoundMap -> VarBoundMap
- scanHypothesis :: F -> Bool -> VarBoundMap -> VarBoundMap
- evalF_comparisons :: VarBoundMap -> F -> F
- evalE_Rational :: VarBoundMap -> E -> (Maybe Rational, Maybe Rational)
- updateUpper :: CanMinMaxSameType a => (t, Maybe a) -> (t1, Maybe a) -> (t1, Maybe a)
- updateLower :: CanMinMaxSameType a => (Maybe a, t) -> (Maybe a, t1) -> (Maybe a, t1)
- evalE :: (Ring v, CanDivSameType v, CanPowBy v Integer, CanMinMaxSameType v, CanAbsSameType v, CanPowBy v v, CanSqrtSameType v, CanSinCosSameType v, IsInterval v, CanAddThis v Integer, HasDyadics v, CanMinMaxSameType (IntervalEndpoint v), _) => (Rational -> v) -> Map VarName v -> Precision -> E -> v
- roundMPBall :: (Real (IntervalEndpoint i), IsInterval i, IsInterval p, ConvertibleExactly Integer (IntervalEndpoint p)) => RoundingMode -> i -> p
- checkFWithEval :: F -> VarBoundMap -> Maybe Bool
Documentation
scanHypotheses :: F -> VarBoundMap -> VarBoundMap Source #
scanHypothesis :: F -> Bool -> VarBoundMap -> VarBoundMap Source #
evalF_comparisons :: VarBoundMap -> F -> F Source #
Replace within a formula some comparisons with FTrue/FFalse, namely those comparisons that on the given box can be easily seen to be true/false.
evalE_Rational :: VarBoundMap -> E -> (Maybe Rational, Maybe Rational) Source #
updateUpper :: CanMinMaxSameType a => (t, Maybe a) -> (t1, Maybe a) -> (t1, Maybe a) Source #
updateLower :: CanMinMaxSameType a => (Maybe a, t) -> (Maybe a, t1) -> (Maybe a, t1) Source #
evalE :: (Ring v, CanDivSameType v, CanPowBy v Integer, CanMinMaxSameType v, CanAbsSameType v, CanPowBy v v, CanSqrtSameType v, CanSinCosSameType v, IsInterval v, CanAddThis v Integer, HasDyadics v, CanMinMaxSameType (IntervalEndpoint v), _) => (Rational -> v) -> Map VarName v -> Precision -> E -> v Source #
compute the value of E with Vars at specified points | (a generalised version of computeE)
roundMPBall :: (Real (IntervalEndpoint i), IsInterval i, IsInterval p, ConvertibleExactly Integer (IntervalEndpoint p)) => RoundingMode -> i -> p Source #
checkFWithEval :: F -> VarBoundMap -> Maybe Bool Source #