(* * OCaml lacks 32-bit floats, however we can emulate all the basic operations * using 64-bit floats, as described in the paper * "When is double rounding innocuous?" by Samuel A. Figueroa. *) include Fxx.Make (struct include Int32 let mantissa = 23 let pos_nan = 0x7fc0_0000l let neg_nan = 0xffc0_0000l let bare_nan = 0x7f80_0000l let to_hex_string = Printf.sprintf "%lx" end)