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 pretty_normal : use_hex:bool -> Format.formatter -> float -> unit
  val pretty : 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 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