sig
type ieee_type = NAN | INF | NORMAL | DENORMAL | ZERO
type float_rep = {
sign : int;
mantissa : string;
exponent : int;
ieee_type : Gsl_ieee.ieee_type;
}
external rep_of_float : float -> Gsl_ieee.float_rep
= "ml_gsl_ieee_double_to_rep"
val print : float -> string
type precision = SINGLE | DOUBLE | EXTENDED
type rounding = TO_NEAREST | DOWN | UP | TO_ZERO
type exceptions =
MASK_INVALID
| MASK_DENORMALIZED
| MASK_DIVISION_BY_ZERO
| MASK_OVERFLOW
| MASK_UNDERFLOW
| MASK_ALL
| TRAP_INEXACT
external set_mode :
?precision:Gsl_ieee.precision ->
?rounding:Gsl_ieee.rounding -> Gsl_ieee.exceptions list -> unit
= "ml_gsl_ieee_set_mode"
external env_setup : unit -> unit = "ml_gsl_ieee_env_setup"
type excepts =
FE_INEXACT
| FE_DIVBYZERO
| FE_UNDERFLOW
| FE_OVERFLOW
| FE_INVALID
| FE_ALL_EXCEPT
external clear_except : Gsl_ieee.excepts list -> unit = "ml_feclearexcept"
external test_except : Gsl_ieee.excepts list -> Gsl_ieee.excepts list
= "ml_fetestexcept"
end