FloatDomain.FloatDomain
include Lattice.S
include Lattice.PO
widen x y
assumes leq x y
. Solvers guarantee this by calling widen old (join old new)
.
val bot : unit -> t
val is_bot : t -> bool
val top : unit -> t
val is_top : t -> bool
include FloatArith with type t := t
Unary 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.t
Less than: x < y
val gt : t -> t -> IntDomain.IntDomTuple.t
Greater than: x > y
val le : t -> t -> IntDomain.IntDomTuple.t
Less than or equal: x <= y
val ge : t -> t -> IntDomain.IntDomTuple.t
Greater than or equal: x >= y
val eq : t -> t -> IntDomain.IntDomTuple.t
Equal to: x == y
val ne : t -> t -> IntDomain.IntDomTuple.t
Not equal to: x != y
val unordered : t -> t -> IntDomain.IntDomTuple.t
Unordered
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.t
val of_const : GoblintCil.Cil.fkind -> float -> t
val of_interval : GoblintCil.Cil.fkind -> (float * float) -> t
val of_string : GoblintCil.Cil.fkind -> string -> t
val of_int : GoblintCil.Cil.fkind -> IntDomain.IntDomTuple.t -> t
val top_of : GoblintCil.Cil.fkind -> t
val bot_of : GoblintCil.Cil.fkind -> t
val nan_of : GoblintCil.Cil.fkind -> t
val inf_of : GoblintCil.Cil.fkind -> t
val minus_inf_of : GoblintCil.Cil.fkind -> t
val ending : GoblintCil.Cil.fkind -> float -> t
val starting : GoblintCil.Cil.fkind -> float -> t
val ending_before : GoblintCil.Cil.fkind -> float -> t
val starting_after : GoblintCil.Cil.fkind -> float -> t
val finite : GoblintCil.Cil.fkind -> t
val minimal : t -> float option
val maximal : t -> float option
val is_exact : t -> bool
val get_fkind : t -> GoblintCil.Cil.fkind
val invariant : GoblintCil.Cil.exp -> t -> Invariant.t