FloatDomain.F64Intervalinclude Lattice.Sinclude Lattice.POwiden x y assumes leq x y. Solvers guarantee this by calling widen old (join old new).
include FloatArith with type t := tUnary functions
nversions of unary functions
(inv_ceil z -> x) if (z = ceil(x))
(inv_ceil z -> x) if (z = ceil(x))
(inv_floor z -> x) if (z = floor(x))
Comparison operators
val lt : t -> t -> IntDomain.IntDomTuple.tLess than: x < y
val gt : t -> t -> IntDomain.IntDomTuple.tGreater than: x > y
val le : t -> t -> IntDomain.IntDomTuple.tLess than or equal: x <= y
val ge : t -> t -> IntDomain.IntDomTuple.tGreater than or equal: x >= y
val eq : t -> t -> IntDomain.IntDomTuple.tEqual to: x == y
val ne : t -> t -> IntDomain.IntDomTuple.tNot equal to: x != y
val unordered : t -> t -> IntDomain.IntDomTuple.tUnordered
Unary functions returning int
val isfinite : t -> IntDomain.IntDomTuple.t__builtin_isfinite(x)
val isinf : t -> IntDomain.IntDomTuple.t__builtin_isinf(x)
val isnan : t -> IntDomain.IntDomTuple.t__builtin_isnan(x)
val isnormal : t -> IntDomain.IntDomTuple.t__builtin_isnormal(x)
val signbit : t -> IntDomain.IntDomTuple.t__builtin_signbit(x)
val to_int : GoblintCil.Cil.ikind -> t -> IntDomain.IntDomTuple.tval nan : unit -> tval of_const : float -> tval of_interval : (float * float) -> tval of_string : string -> tval of_int : IntDomain.IntDomTuple.t -> tval ending : float -> tval starting : float -> tval ending_before : float -> tval starting_after : float -> tval finite : tval minimal : t -> float optionval maximal : t -> float optionval is_exact : t -> bool