(************************************************************************) (* * The Coq Proof Assistant / The Coq Development Team *) (* v * Copyright INRIA, CNRS and contributors *) (* bool val is_infinity : t -> bool val is_neg_infinity : t -> bool val to_string : t -> string val of_string : string -> t val compile : t -> string val of_float : float -> t (** Return [true] for "-", [false] for "+". *) val sign : t -> bool val opp : t -> t val abs : t -> t type float_comparison = FEq | FLt | FGt | FNotComparable val eq : t -> t -> bool val lt : t -> t -> bool val le : t -> t -> bool (** The IEEE 754 float comparison. * NotComparable is returned if there is a NaN in the arguments *) val compare : t -> t -> float_comparison [@@ocaml.inline always] type float_class = | PNormal | NNormal | PSubn | NSubn | PZero | NZero | PInf | NInf | NaN val classify : t -> float_class [@@ocaml.inline always] val mul : t -> t -> t val add : t -> t -> t val sub : t -> t -> t val div : t -> t -> t val sqrt : t -> t (** Link with integers *) val of_int63 : Uint63.t -> t [@@ocaml.inline always] val normfr_mantissa : t -> Uint63.t [@@ocaml.inline always] (** Shifted exponent extraction *) val eshift : int val frshiftexp : t -> t * Uint63.t (* float remainder, shifted exponent *) [@@ocaml.inline always] val ldshiftexp : t -> Uint63.t -> t [@@ocaml.inline always] val next_up : t -> t val next_down : t -> t (** Return true if two floats are equal. * All NaN values are considered equal. *) val equal : t -> t -> bool [@@ocaml.inline always] val hash : t -> int (** Total order relation over float values. Behaves like [Pervasives.compare].*) val total_compare : t -> t -> int val is_float64 : Obj.t -> bool [@@ocaml.inline always]