Frama-C API - Model
The field over which the abstraction is defined.
module Scalar : Frama_c_kernel.Field.Stype scalar = Scalar.tThe monad used to encode context dependent computations.
It must rely on a context that respects Abstract_context.Leaf.
module Context : sig ... endmodule Computation : sig ... endtype 'a computation = 'a Computation.tAbstraction used for the exact and absolute errors semantics.
module Additive : sig ... endmodule Exact = Additivetype exact = Exact.tmodule Absolute = Additivetype absolute = Absolute.tAbstraction used for the relative errors semantics.
module Multiplicative : sig ... endmodule Relative = Multiplicativetype relative = Relative.tReduced product and other miscellaneous values.
val new_absolute_elementary_error : exact Eva__.IEEE754.correctly_rounded_expression -> scalar -> absolute computationThe call new_absolute_elementary_error expr bound returns a computation of the absolute abstraction of the elementary rounding error that would be produced by the computation of expr and is bounded by bound.
val new_relative_elementary_error : exact Eva__.IEEE754.correctly_rounded_expression -> scalar -> relative computationThe call new_relative_elementary_error expr bound returns a computation of the relative abstraction of the elementary rounding error that would be produced by the computation of expr and is bounded by bound.
The call do_reduce_absolute_with_relative () returns true if and only if the analysis is configured to reduce the absolute errors using the relative error bounds.
The call do_reduce_relative_with_absolute () returns true if and only if the analysis is configured to reduce the relative errors using the absolute error bounds.
val recompute_absolute : exact:exact -> relative:relative -> absolute computationThe call recompute_absolute ~exact ~relative returns a computation of absolute error bounds as deduced from exact and relative, respectively representing the exact semantics and the relative error semantics. It will be used if the reduced product is configured to reduce the absolute errors using the relative error bounds.
val recompute_relative : exact:exact -> absolute:absolute -> relative computationThe call recompute_relative ~exact ~absolute returns a computation of relative error bounds as deduced from exact and absolute, respectively representing the exact semantics and the absolute error semantics. It will be used if the reduced product is configured to reduce the relative errors using the absolute error bounds.
val a_x_plus_b_y_over_x_plus_y : a:relative -> x:exact -> b:relative -> y:exact -> relative computationThis function is used to compute an abstraction of (ax + by) / (x + y), as this expression can be more precisely abstracted using a dedicated approach than the straightforward composition of arithmetic operators. In the context of the IEEE-754 semantics, those expressions appear in the relative error semantics of the addition, which is why the function is specialized on relative abstractions.
