sig
type t = Gmp.f
val zero : prec:int -> Gmp.F.t
val one : prec:int -> Gmp.F.t
val minus_one : prec:int -> Gmp.F.t
external compare : Gmp.F.t -> Gmp.F.t -> int = "mlgmp_f_compare"
external compare_int : Gmp.F.t -> int -> int = "mlgmp_f_compare_int"
external neg : prec:int -> Gmp.F.t -> Gmp.F.t = "mlgmp_f_neg"
external abs : prec:int -> Gmp.F.t -> Gmp.F.t = "mlgmp_f_abs"
external add : prec:int -> Gmp.F.t -> Gmp.F.t -> Gmp.F.t = "mlgmp_f_add"
external add_int : prec:int -> Gmp.F.t -> int -> Gmp.F.t
= "mlgmp_f_add_int"
external sub : prec:int -> Gmp.F.t -> Gmp.F.t -> Gmp.F.t = "mlgmp_f_sub"
external sub_int : prec:int -> Gmp.F.t -> int -> Gmp.F.t
= "mlgmp_f_sub_int"
external mul : prec:int -> Gmp.F.t -> Gmp.F.t -> Gmp.F.t = "mlgmp_f_mul"
external mul_int : prec:int -> Gmp.F.t -> int -> Gmp.F.t
= "mlgmp_f_mul_int"
external div : prec:int -> Gmp.F.t -> Gmp.F.t -> Gmp.F.t = "mlgmp_f_div"
external fma : prec:int -> Gmp.F.t -> Gmp.F.t -> Gmp.F.t -> Gmp.F.t
= "mlgmp_f_fma"
external pow_int : prec:int -> base:Gmp.F.t -> exponent:int -> Gmp.F.t
= "mlgmp_f_pow_int"
external int_pow_int : prec:int -> base:int -> exponent:int -> Gmp.F.t
= "mlgmp_f_int_pow_int"
external scale : prec:int -> Gmp.F.t -> base:int -> exponent:int -> Gmp.F.t
= "mlgmp_f_scale"
external root : prec:int -> nth:int -> Gmp.F.t -> Gmp.F.t = "mlgmp_f_root"
external sqrt : prec:int -> Gmp.F.t -> Gmp.F.t = "mlgmp_f_sqrt"
external nearly_equal : int -> Gmp.F.t -> Gmp.F.t -> bool
= "mlgmp_f_nearly_equal"
external frexp : prec:int -> Gmp.F.t -> Gmp.F.t * int = "mlgmp_f_frexp"
external ldexp : prec:int -> Gmp.F.t -> int -> Gmp.F.t = "mlgmp_f_ldexp"
external trunc : prec:int -> Gmp.F.t -> Gmp.F.t = "mlgmp_f_trunc"
external ceil : prec:int -> Gmp.F.t -> Gmp.F.t = "mlgmp_f_ceil"
external floor : prec:int -> Gmp.F.t -> Gmp.F.t = "mlgmp_f_floor"
external log : prec:int -> Gmp.F.t -> Gmp.F.t = "mlgmp_f_log"
external based_log : prec:int -> base:int -> Gmp.F.t -> Gmp.F.t
= "mlgmp_f_based_log"
external of_based_string : prec:int -> base:int -> string -> Gmp.F.t
= "mlgmp_f_of_based_string"
val of_string : prec:int -> string -> Gmp.F.t
external to_based_string : base:int -> Gmp.F.t -> string
= "mlgmp_based_string_of_f"
val to_string : Gmp.F.t -> string
external of_int : prec:int -> int -> Gmp.F.t = "mlgmp_f_of_int"
external of_float : prec:int -> float -> Gmp.F.t = "mlgmp_f_of_float"
external to_float : Gmp.F.t -> float = "mlgmp_float_of_f"
external of_z : prec:int -> Gmp.z -> Gmp.F.t = "mlgmp_f_of_z"
module type Param = sig val prec : int end
module Make :
Param ->
sig
type t = Gmp.f
val zero : Gmp.F.Make.t
val one : Gmp.F.Make.t
val minus_one : Gmp.F.Make.t
external compare : Gmp.F.Make.t -> Gmp.F.Make.t -> int
= "mlgmp_f_compare"
external compare_int : Gmp.F.Make.t -> int -> int
= "mlgmp_f_compare_int"
val neg : Gmp.F.Make.t -> Gmp.F.Make.t
val abs : Gmp.F.Make.t -> Gmp.F.Make.t
val add : Gmp.F.Make.t -> Gmp.F.Make.t -> Gmp.F.Make.t
val add_int : Gmp.F.Make.t -> int -> Gmp.F.Make.t
val sub : Gmp.F.Make.t -> Gmp.F.Make.t -> Gmp.F.Make.t
val sub_int : Gmp.F.Make.t -> int -> Gmp.F.Make.t
val mul : Gmp.F.Make.t -> Gmp.F.Make.t -> Gmp.F.Make.t
val mul_int : Gmp.F.Make.t -> int -> Gmp.F.Make.t
val div : Gmp.F.Make.t -> Gmp.F.Make.t -> Gmp.F.Make.t
val fma :
Gmp.F.Make.t -> Gmp.F.Make.t -> Gmp.F.Make.t -> Gmp.F.Make.t
val pow_int : base:Gmp.F.Make.t -> exponent:int -> Gmp.F.Make.t
val int_pow_int : base:int -> exponent:int -> Gmp.F.Make.t
val scale : Gmp.F.Make.t -> base:int -> exponent:int -> Gmp.F.Make.t
val root : nth:int -> Gmp.F.Make.t -> Gmp.F.Make.t
val sqrt : Gmp.F.Make.t -> Gmp.F.Make.t
external nearly_equal : int -> Gmp.F.Make.t -> Gmp.F.Make.t -> bool
= "mlgmp_f_nearly_equal"
val frexp : Gmp.F.Make.t -> Gmp.F.Make.t * int
val ldexp : Gmp.F.Make.t -> int -> Gmp.F.Make.t
val trunc : Gmp.F.Make.t -> Gmp.F.Make.t
val ceil : Gmp.F.Make.t -> Gmp.F.Make.t
val floor : Gmp.F.Make.t -> Gmp.F.Make.t
val log : Gmp.F.Make.t -> Gmp.F.Make.t
val based_log : base:int -> Gmp.F.Make.t -> Gmp.F.Make.t
val of_based_string : base:int -> string -> Gmp.F.Make.t
val of_string : string -> Gmp.F.Make.t
external to_based_string : base:int -> Gmp.F.Make.t -> string
= "mlgmp_based_string_of_f"
val to_string : Gmp.F.Make.t -> string
val of_int : int -> Gmp.F.Make.t
val of_float : float -> Gmp.F.Make.t
external to_float : Gmp.F.Make.t -> float = "mlgmp_float_of_f"
val of_z : Gmp.z -> Gmp.F.Make.t
end
external default_prec : unit -> int = "mlgmp_f_default_prec"
val default : unit -> (module Gmp.F.Param)
end