sig
type c_rounding_mode =
FE_ToNearest
| FE_Upward
| FE_Downward
| FE_TowardZero
val string_of_c_rounding_mode : Floating_point.c_rounding_mode -> string
external set_round_downward : unit -> unit = "set_round_downward"
[@@noalloc]
external set_round_upward : unit -> unit = "set_round_upward" [@@noalloc]
external set_round_nearest_even : unit -> unit = "set_round_nearest_even"
[@@noalloc]
external set_round_toward_zero : unit -> unit = "set_round_toward_zero"
[@@noalloc]
external get_rounding_mode : unit -> Floating_point.c_rounding_mode
= "get_rounding_mode" [@@noalloc]
external set_rounding_mode : Floating_point.c_rounding_mode -> unit
= "set_rounding_mode" [@@noalloc]
external round_to_single_precision_float : float -> float
= "round_to_float"
val max_single_precision_float : float
val most_negative_single_precision_float : float
val min_denormal : float
val neg_min_denormal : float
val min_single_precision_denormal : float
val neg_min_single_precision_denormal : float
external sys_single_precision_of_string : string -> float
= "single_precision_of_string"
type parsed_float = {
f_nearest : float;
f_lower : float;
f_upper : float;
}
val parse : string -> Cil_types.fkind * Floating_point.parsed_float
val has_suffix : Cil_types.fkind -> string -> bool
val pretty_normal :
use_hex:bool -> Stdlib.Format.formatter -> float -> unit
val pretty : Stdlib.Format.formatter -> float -> unit
type sign = Neg | Pos
exception Float_Non_representable_as_Int64 of Floating_point.sign
val truncate_to_integer : float -> Integer.t
val bits_of_max_double : Integer.t
val bits_of_most_negative_double : Integer.t
val bits_of_max_float : Integer.t
val bits_of_most_negative_float : Integer.t
external fround : float -> float = "c_round"
external trunc : float -> float = "c_trunc"
external expf : float -> float = "c_expf"
external logf : float -> float = "c_logf"
external log10f : float -> float = "c_log10f"
external powf : float -> float -> float = "c_powf"
external sqrtf : float -> float = "c_sqrtf"
external fmodf : float -> float -> float = "c_fmodf"
external cosf : float -> float = "c_cosf"
external sinf : float -> float = "c_sinf"
external acosf : float -> float = "c_acosf"
external asinf : float -> float = "c_asinf"
external atanf : float -> float = "c_atanf"
external atan2f : float -> float -> float = "c_atan2f"
val isnan : float -> bool
val isfinite : float -> bool
val nextafter : float -> float -> float
val nextafterf : float -> float -> float
end