package mopsa
Install
Dune Dependency
Authors
Maintainers
Sources
md5=fdee20e988343751de440b4f6b67c0f4
sha512=f5cbf1328785d3f5ce40155dada2d95e5de5cce4f084ea30cfb04d1ab10cc9403a26cfb3fa55d0f9da72244482130fdb89c286a9aed0d640bba46b7c00e09500
doc/numeric_common/Numeric_common/Common/index.html
Module Numeric_common.Common
Source
Common constructs for numeric abstractions.
module I = Mopsa.ItvUtils.IntItv
module C = Mopsa.CongUtils.IntCong
Integer intervals
*********************
Integer intervals
type Mopsa.avalue_kind +=
| V_int_interval : int_itv Mopsa.avalue_kind
(*Query to evaluate the integer interval of an expression
*)
type Mopsa.avalue_kind +=
| V_int_interval_fast : int_itv Mopsa.avalue_kind
(*Same as
*)V_int_interval
but should be handled by optimized domains, such Boxes
Creates var \in itv constraint
Integer intervals with congruence
*************************************
Integer step intervals
Query to evaluate the integer interval of an expression
Rounding mode of floats
***************************
Float intervals
*******************
module F = Mopsa.ItvUtils.FloatItvNan
type Mopsa.avalue_kind +=
| V_float_interval : Lang.Ast.float_prec -> float_itv Mopsa.avalue_kind
(*Query to evaluate the float interval of an expression, with infinities and NaN
*)| V_float_maybenan : Lang.Ast.float_prec -> bool Mopsa.avalue_kind
val mk_float_interval_query :
?prec:Lang.Ast.float_prec ->
Ast.Expr.expr ->
('a, float_itv) Core.Query.query
val mk_float_maybenan_query :
?prec:Lang.Ast.float_prec ->
Ast.Expr.expr ->
('a, bool) Core.Query.query
Fast assume on numeric conditions
*************************************
Get the intervals of a numeric expression
Evaluate a numeric condition using intervals
val assume_num :
Ast.Expr.expr ->
fthen:('a Core.Flow.flow -> ('a, 'b) Core.Cases.cases) ->
felse:('a Core.Flow.flow -> ('a, 'b) Core.Cases.cases) ->
?route:Mopsa.route ->
('a, 'c) Mopsa.man ->
'a Core.Flow.flow ->
('a, 'b) Mopsa.Cases.cases
Optimized assume function that uses intervals to check a condition or falls back to classic assume
Widening thresholds
***********************
module K : sig ... end
Key for accessing widening thresholds
val add_widening_threshold :
Core.All.var ->
Mopsa.SetExt.ZSet.elt ->
'a Core.All.ctx ->
'a Core.All.ctx
Add a constant to the widening thresholds of a variable
Remove all widening thresholds of a variable