Float64_common
t
is currently implemented by OCaml's float
type.
Beware: NaNs have a sign and a payload, while they should be indistinguishable from Coq's perspective.
val is_nan : t -> bool
Test functions for special values to avoid calling classify
val is_infinity : t -> bool
val is_neg_infinity : t -> bool
val of_string : string -> t
val to_hex_string : t -> string
Print a float exactly as an hexadecimal value (exact decimal * printing would be possible but sometimes requires more than 700 * digits).
val to_string : t -> string
Print a float as a decimal value. The printing is not exact (the * real value printed is not always the given floating-point value), * however printing is precise enough that forall float f
, * of_string (to_decimal_string f) = f
.
val compile : t -> string
val of_float : float -> t
val to_float : t -> float
All NaNs are normalized to Stdlib.nan
.
val sign : t -> bool
Return true
for "-", false
for "+".
val compare : t -> t -> float_comparison
The IEEE 754 float comparison. * NotComparable is returned if there is a NaN in the arguments
val classify : t -> float_class
Return true if two floats are equal. * All NaN values are considered equal.
val hash : t -> int
Total order relation over float values. Behaves like Pervasives.compare
.