10
1
mirror of https://gitlab.com/scemama/QCaml.git synced 2024-11-18 12:03:40 +01:00
QCaml/common/lib/non_negative_float.ml

25 lines
638 B
OCaml

(* [[file:~/QCaml/common/non_negative_float.org::*Type][Type:2]] *)
type t = float
(* Type:2 ends here *)
(* The ~of_float~ function checks that the float is non-negative.
* The unsafe variant doesn't do this check. *)
(* [[file:~/QCaml/common/non_negative_float.org::*Conversions][Conversions:2]] *)
let of_float x =
if x < 0. then invalid_arg (__FILE__^": of_float");
x
external to_float : t -> float = "%identity"
external unsafe_of_float : float -> t = "%identity"
let to_string x =
let f = to_float x in string_of_float f
let of_string x =
let f = float_of_string x in of_float f
(* Conversions:2 ends here *)