Frama_c_kernel.Floating_pointFloating-point operations.
Rounding modes defined in the C99 standard.
val string_of_c_rounding_mode : c_rounding_mode -> stringval get_rounding_mode : unit -> c_rounding_modeval set_rounding_mode : c_rounding_mode -> unitIf s is parsed as (n, l, u), then n is the nearest approximation of s with the desired precision. Moreover, l and u are the most precise float such that l <= s <= u, again with this precision.
Consistent with logic_real definition in Cil_types.
val parse : string -> Cil_types.fkind * parsed_floatparse s parses s and returns the parsed float and its kind (single, double or long double precision) according to its suffix, if any. Strings with no suffix are parsed as double.
val has_suffix : Cil_types.fkind -> string -> boolChecks if the (uppercased) string ends with an explicit F|D|L suffix corresponding to the given float kind.
val pretty_normal : use_hex:bool -> Format.formatter -> float -> unitval pretty : Format.formatter -> float -> unitexception Float_Non_representable_as_Int64 of signval truncate_to_integer : float -> Integer.tRaises Float_Non_representable_as_Int64 if the float value cannot be represented as an Int64 or as an unsigned Int64.
val bits_of_max_double : Integer.tbinary representation of -DBL_MAX and DBL_MAX as 64 bits signed integers
val bits_of_most_negative_double : Integer.tval bits_of_max_float : Integer.tbinary representation of -FLT_MAX and FLT_MAX as 32 bits signed integers
val bits_of_most_negative_float : Integer.tSingle-precision (32-bit) floating-point wrappers
Auxiliary functions similar to the ones in the C math library