sig
  type t
  type integer = Abstract_interp.Int.t
  exception Nan_or_infinite
  exception Bottom
  val inject : Ival.F.t -> Ival.F.t -> Ival.Float_abstract.t
  val top : Ival.Float_abstract.t
  val add_float :
    Ival.Float_abstract.t -> Ival.Float_abstract.t -> Ival.Float_abstract.t
  val sub_float :
    Ival.Float_abstract.t -> Ival.Float_abstract.t -> Ival.Float_abstract.t
  val mult_float :
    Ival.Float_abstract.t -> Ival.Float_abstract.t -> Ival.Float_abstract.t
  val div_float :
    Ival.Float_abstract.t -> Ival.Float_abstract.t -> Ival.Float_abstract.t
  val contains_zero : Ival.Float_abstract.t -> bool
  val compare : Ival.Float_abstract.t -> Ival.Float_abstract.t -> int
  val pretty : Format.formatter -> Ival.Float_abstract.t -> unit
  val hash : 'a * '-> int
  val zero : Ival.Float_abstract.t
  val rounding_inject : Ival.F.t -> Ival.F.t -> Ival.Float_abstract.t
  val is_included : Ival.Float_abstract.t -> Ival.Float_abstract.t -> bool
  val join :
    Ival.Float_abstract.t -> Ival.Float_abstract.t -> Ival.Float_abstract.t
  val meet :
    Ival.Float_abstract.t -> Ival.Float_abstract.t -> Ival.Float_abstract.t
  val contains_a_zero : Ival.Float_abstract.t -> bool
  val is_zero : Ival.Float_abstract.t -> bool
  val is_singleton : Ival.Float_abstract.t -> bool
  val neg_float : Ival.Float_abstract.t -> Ival.Float_abstract.t
  val sqrt_float : Ival.Float_abstract.t -> Ival.Float_abstract.t
  val minus_one_one : Ival.Float_abstract.t
  val cos_float : Ival.Float_abstract.t -> Ival.Float_abstract.t
  val widen :
    Ival.Float_abstract.t -> Ival.Float_abstract.t -> Ival.Float_abstract.t
  val equal_float_ieee :
    Ival.Float_abstract.t -> Ival.Float_abstract.t -> bool * bool
  val maybe_le_ieee_float :
    Ival.Float_abstract.t -> Ival.Float_abstract.t -> bool
  val maybe_lt_ieee_float :
    Ival.Float_abstract.t -> Ival.Float_abstract.t -> bool
  val diff :
    Ival.Float_abstract.t -> Ival.Float_abstract.t -> Ival.Float_abstract.t
  val filter_le :
    Ival.Float_abstract.t -> Ival.Float_abstract.t -> Ival.Float_abstract.t
  val filter_ge :
    Ival.Float_abstract.t -> Ival.Float_abstract.t -> Ival.Float_abstract.t
  val filter_lt :
    Ival.Float_abstract.t -> Ival.Float_abstract.t -> Ival.Float_abstract.t
  val filter_gt :
    Ival.Float_abstract.t -> Ival.Float_abstract.t -> Ival.Float_abstract.t
end