sig
type t
val zero : Gmp.F.t
external create : unit -> Gmp.F.t = "_mlgmp_f_create"
val default_prec : int Pervasives.ref
external from_z_prec : prec:int -> Gmp.Z.t -> Gmp.F.t = "_mlgmp_f_from_z"
external from_q_prec : prec:int -> Gmp.Z.t -> Gmp.F.t = "_mlgmp_f_from_q"
external from_si_prec : prec:int -> int -> Gmp.F.t = "_mlgmp_f_from_si"
external from_float_prec : prec:int -> float -> Gmp.F.t
= "_mlgmp_f_from_float"
external from_string_prec_base : prec:int -> base:int -> string -> Gmp.F.t
= "_mlgmp_f_from_string"
external float_from : Gmp.F.t -> float = "_mlgmp_f_to_float"
external to_float : Gmp.F.t -> float = "_mlgmp_f_to_float"
external to_string_exp_base_digits :
base:int -> digits:int -> Gmp.F.t -> string * int
= "_mlgmp_f_to_string_exp_base_digits"
external add_prec : prec:int -> Gmp.F.t -> Gmp.F.t -> Gmp.F.t
= "_mlgmp_f_add"
external sub_prec : prec:int -> Gmp.F.t -> Gmp.F.t -> Gmp.F.t
= "_mlgmp_f_sub"
external mul_prec : prec:int -> Gmp.F.t -> Gmp.F.t -> Gmp.F.t
= "_mlgmp_f_mul"
external div_prec : prec:int -> Gmp.F.t -> Gmp.F.t -> Gmp.F.t
= "_mlgmp_f_div"
external add_prec_ui : prec:int -> Gmp.F.t -> int -> Gmp.F.t
= "_mlgmp_f_add_ui"
external sub_prec_ui : prec:int -> Gmp.F.t -> int -> Gmp.F.t
= "_mlgmp_f_sub_ui"
external mul_prec_ui : prec:int -> Gmp.F.t -> int -> Gmp.F.t
= "_mlgmp_f_mul_ui"
external div_prec_ui : prec:int -> Gmp.F.t -> int -> Gmp.F.t
= "_mlgmp_f_div_ui"
external neg_prec : prec:int -> Gmp.F.t -> Gmp.F.t = "_mlgmp_f_neg"
external abs_prec : prec:int -> Gmp.F.t -> Gmp.F.t = "_mlgmp_f_abs"
external inv_prec : prec:int -> Gmp.F.t -> Gmp.F.t = "_mlgmp_f_div"
external reldiff_prec : prec:int -> Gmp.F.t -> Gmp.F.t = "_mlgmp_f_reldiff"
external floor_prec : prec:int -> Gmp.F.t -> Gmp.F.t = "_mlgmp_f_floor"
external ceil_prec : prec:int -> Gmp.F.t -> Gmp.F.t = "_mlgmp_f_ceil"
external trunc_prec : prec:int -> Gmp.F.t -> Gmp.F.t = "_mlgmp_f_trunc"
val from_z : Gmp.Z.t -> Gmp.F.t
val from_q : Gmp.Z.t -> Gmp.F.t
val from_si : int -> Gmp.F.t
val from_int : int -> Gmp.F.t
val from_float : float -> Gmp.F.t
val from_string_base : base:int -> string -> Gmp.F.t
val from_string : string -> Gmp.F.t
val add : Gmp.F.t -> Gmp.F.t -> Gmp.F.t
val sub : Gmp.F.t -> Gmp.F.t -> Gmp.F.t
val mul : Gmp.F.t -> Gmp.F.t -> Gmp.F.t
val div : Gmp.F.t -> Gmp.F.t -> Gmp.F.t
val reldiff : Gmp.F.t -> Gmp.F.t
val add_ui : Gmp.F.t -> int -> Gmp.F.t
val sub_ui : Gmp.F.t -> int -> Gmp.F.t
val mul_ui : Gmp.F.t -> int -> Gmp.F.t
val div_ui : Gmp.F.t -> int -> Gmp.F.t
val neg : Gmp.F.t -> Gmp.F.t
val abs : Gmp.F.t -> Gmp.F.t
val inv : Gmp.F.t -> Gmp.F.t
val floor : Gmp.F.t -> Gmp.F.t
val ceil : Gmp.F.t -> Gmp.F.t
val trunc : Gmp.F.t -> Gmp.F.t
external cmp : Gmp.F.t -> Gmp.F.t -> int = "_mlgmp_f_cmp"
external compare : Gmp.F.t -> Gmp.F.t -> int = "_mlgmp_f_cmp"
external sgn : Gmp.F.t -> int = "_mlgmp_f_sgn"
external eq : Gmp.F.t -> Gmp.F.t -> prec:int -> bool = "_mlgmp_f_eq"
external urandomb_prec :
prec:int -> state:Gmp.RNG.randstate_t -> nbits:int -> Gmp.F.t
= "_mlgmp_f_urandomb"
external random2 : prec:int -> nlimbs:int -> max_exp:int -> Gmp.F.t
= "_mlgmp_f_random2"
val urandomb : state:Gmp.RNG.randstate_t -> nbits:int -> Gmp.F.t
val equal : Gmp.F.t -> Gmp.F.t -> bool
val to_string_base_digits : base:int -> digits:int -> Gmp.F.t -> string
val to_string : Gmp.F.t -> string
end