FloatDomain.FloatDomTupleImplinclude 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
Unary functions returning int
val isfinite : t -> bool option__builtin_isfinite(x)
val isinf : t -> bool option__builtin_isinf(x)
val isnan : t -> bool option__builtin_isnan(x)
val isnormal : t -> bool option__builtin_isnormal(x)
val signbit : t -> bool option__builtin_signbit(x)
val to_int : GoblintCil.Cil.ikind -> t -> IntDomain.IntDomTuple.tval of_const : GoblintCil.Cil.fkind -> float -> tval of_interval : GoblintCil.Cil.fkind -> (float * float) -> tval of_string : GoblintCil.Cil.fkind -> string -> tval of_int : GoblintCil.Cil.fkind -> IntDomain.IntDomTuple.t -> tval top_of : GoblintCil.Cil.fkind -> tval bot_of : GoblintCil.Cil.fkind -> tval nan_of : GoblintCil.Cil.fkind -> tval inf_of : GoblintCil.Cil.fkind -> tval minus_inf_of : GoblintCil.Cil.fkind -> tval ending : GoblintCil.Cil.fkind -> float -> tval starting : GoblintCil.Cil.fkind -> float -> tval ending_before : GoblintCil.Cil.fkind -> float -> tval starting_after : GoblintCil.Cil.fkind -> float -> tval finite : GoblintCil.Cil.fkind -> tval minimal : t -> float optionval maximal : t -> float optionval is_exact : t -> boolval get_fkind : t -> GoblintCil.Cil.fkindval invariant : GoblintCil.Cil.exp -> t -> Invariant.t