Frama-C API - Floating_point
Floating-point operations.
Rounding modes defined in the C99 standard.
val string_of_c_rounding_mode : c_rounding_mode -> string
val get_rounding_mode : unit -> c_rounding_mode
val set_rounding_mode : c_rounding_mode -> unit
If 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_float
parse 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 -> bool
Checks if the (uppercased) string ends with an explicit F|D|L
suffix corresponding to the given float kind.
exception Float_Non_representable_as_Int64 of sign
val truncate_to_integer : float -> Integer.t
Raises 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.t
binary representation of -DBL_MAX and DBL_MAX as 64 bits signed integers
val bits_of_most_negative_double : Integer.t
val bits_of_max_float : Integer.t
binary representation of -FLT_MAX and FLT_MAX as 32 bits signed integers
val bits_of_most_negative_float : Integer.t
Single-precision (32-bit) floating-point wrappers
Auxiliary functions similar to the ones in the C math library