sig
  type t
  val print : Format.formatter -> Mpf.t -> unit
  external set_default_prec : int -> unit
    = "camlidl_mpf_mpf_set_default_prec"
  external get_default_prec : unit -> int
    = "camlidl_mpf_mpf_get_default_prec"
  external init : unit -> Mpf.t = "camlidl_mpf_mpf_init"
  external init2 : int -> Mpf.t = "camlidl_mpf_mpf_init2"
  external get_prec : Mpf.t -> int = "camlidl_mpf_mpf_get_prec"
  external set_prec : Mpf.t -> int -> unit = "camlidl_mpf_mpf_set_prec"
  external set_prec_raw : Mpf.t -> int -> unit
    = "camlidl_mpf_mpf_set_prec_raw"
  external set : Mpf.t -> Mpf.t -> unit = "camlidl_mpf_mpf_set"
  external set_si : Mpf.t -> int -> unit = "camlidl_mpf_mpf_set_si"
  external set_d : Mpf.t -> float -> unit = "camlidl_mpf_mpf_set_d"
  external set_z : Mpf.t -> Mpz.t -> unit = "camlidl_mpf_mpf_set_z"
  external set_q : Mpf.t -> Mpq.t -> unit = "camlidl_mpf_mpf_set_q"
  external _set_str : Mpf.t -> string -> int -> unit
    = "camlidl_mpf_mpf__set_str"
  val set_str : Mpf.t -> string -> base:int -> unit
  external swap : Mpf.t -> Mpf.t -> unit = "camlidl_mpf_mpf_swap"
  external init_set : Mpf.t -> Mpf.t = "camlidl_mpf_mpf_init_set"
  external init_set_si : int -> Mpf.t = "camlidl_mpf_mpf_init_set_si"
  external init_set_d : float -> Mpf.t = "camlidl_mpf_mpf_init_set_d"
  external _init_set_str : string -> int -> Mpf.t
    = "camlidl_mpf_mpf__init_set_str"
  val init_set_str : string -> base:int -> Mpf.t
  external get_d : Mpf.t -> float = "camlidl_mpf_mpf_get_d"
  external get_d_2exp : Mpf.t -> float * int = "camlidl_mpf_mpf_get_d_2exp"
  external get_si : Mpf.t -> nativeint = "camlidl_mpf_mpf_get_si"
  external get_int : Mpf.t -> int = "camlidl_mpf_mpf_get_int"
  external get_z : Mpz.t -> Mpf.t -> unit = "camlidl_mpf_mpf_get_z"
  external get_q : Mpq.t -> Mpf.t -> unit = "camlidl_mpf_mpf_get_q"
  external _get_str : int -> int -> Mpf.t -> string * int
    = "camlidl_mpf_mpf__get_str"
  val get_str : base:int -> digits:int -> Mpf.t -> string * int
  val to_string : Mpf.t -> string
  val to_float : Mpf.t -> float
  val of_string : string -> Mpf.t
  val of_float : float -> Mpf.t
  val of_int : int -> Mpf.t
  val of_mpz : Mpz.t -> Mpf.t
  val of_mpq : Mpq.t -> Mpf.t
  val is_integer : Mpf.t -> bool
  external add : Mpf.t -> Mpf.t -> Mpf.t -> unit = "camlidl_mpf_mpf_add"
  external add_ui : Mpf.t -> Mpf.t -> int -> unit = "camlidl_mpf_mpf_add_ui"
  external sub : Mpf.t -> Mpf.t -> Mpf.t -> unit = "camlidl_mpf_mpf_sub"
  external ui_sub : Mpf.t -> int -> Mpf.t -> unit = "camlidl_mpf_mpf_ui_sub"
  external sub_ui : Mpf.t -> Mpf.t -> int -> unit = "camlidl_mpf_mpf_sub_ui"
  external mul : Mpf.t -> Mpf.t -> Mpf.t -> unit = "camlidl_mpf_mpf_mul"
  external mul_ui : Mpf.t -> Mpf.t -> int -> unit = "camlidl_mpf_mpf_mul_ui"
  external mul_2exp : Mpf.t -> Mpf.t -> int -> unit
    = "camlidl_mpf_mpf_mul_2exp"
  external div : Mpf.t -> Mpf.t -> Mpf.t -> unit = "camlidl_mpf_mpf_div"
  external ui_div : Mpf.t -> int -> Mpf.t -> unit = "camlidl_mpf_mpf_ui_div"
  external div_ui : Mpf.t -> Mpf.t -> int -> unit = "camlidl_mpf_mpf_div_ui"
  external div_2exp : Mpf.t -> Mpf.t -> int -> unit
    = "camlidl_mpf_mpf_div_2exp"
  external sqrt : Mpf.t -> Mpf.t -> unit = "camlidl_mpf_mpf_sqrt"
  external pow_ui : Mpf.t -> Mpf.t -> int -> unit = "camlidl_mpf_mpf_pow_ui"
  external neg : Mpf.t -> Mpf.t -> unit = "camlidl_mpf_mpf_neg"
  external abs : Mpf.t -> Mpf.t -> unit = "camlidl_mpf_mpf_abs"
  external cmp : Mpf.t -> Mpf.t -> int = "camlidl_mpf_mpf_cmp"
  external cmp_d : Mpf.t -> float -> int = "camlidl_mpf_mpf_cmp_d"
  external cmp_si : Mpf.t -> int -> int = "camlidl_mpf_mpf_cmp_si"
  external sgn : Mpf.t -> int = "camlidl_mpf_mpf_sgn"
  external _equal : Mpf.t -> Mpf.t -> int -> bool = "camlidl_mpf_mpf__equal"
  val equal : Mpf.t -> Mpf.t -> bits:int -> bool
  external reldiff : Mpf.t -> Mpf.t -> Mpf.t -> unit
    = "camlidl_mpf_mpf_reldiff"
  external ceil : Mpf.t -> Mpf.t -> unit = "camlidl_mpf_mpf_ceil"
  external floor : Mpf.t -> Mpf.t -> unit = "camlidl_mpf_mpf_floor"
  external trunc : Mpf.t -> Mpf.t -> unit = "camlidl_mpf_mpf_trunc"
  external integer_p : Mpf.t -> bool = "camlidl_mpf_mpf_integer_p"
  external fits_int_p : Mpf.t -> bool = "camlidl_mpf_mpf_fits_int_p"
  external fits_ulong_p : Mpf.t -> bool = "camlidl_mpf_mpf_fits_ulong_p"
  external fits_slong_p : Mpf.t -> bool = "camlidl_mpf_mpf_fits_slong_p"
  external fits_uint_p : Mpf.t -> bool = "camlidl_mpf_mpf_fits_uint_p"
  external fits_sint_p : Mpf.t -> bool = "camlidl_mpf_mpf_fits_sint_p"
  external fits_ushort_p : Mpf.t -> bool = "camlidl_mpf_mpf_fits_ushort_p"
  external fits_sshort_p : Mpf.t -> bool = "camlidl_mpf_mpf_fits_sshort_p"
end