sig
  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 round_to_single_precision_float : float -> float
    = "round_to_float"
  val max_single_precision_float : float
  val most_negative_single_precision_float : 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 single_precision_of_string : string -> Floating_point.parsed_float
  val double_precision_of_string : string -> Floating_point.parsed_float
  val parse_kind : Cil_types.fkind -> string -> 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
end