sig
  type 'a tt
  type m
  type f
  type t = Mpf.m Mpf.tt
  val print : Format.formatter -> 'Mpf.tt -> 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.tt = "camlidl_mpf_mpf_init"
  external init2 : int -> 'Mpf.tt = "camlidl_mpf_mpf_init2"
  external get_prec : 'Mpf.tt -> 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.tt -> 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.tt -> unit = "camlidl_mpf_mpf_set_z"
  external set_q : Mpf.t -> 'Mpq.tt -> 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.tt -> 'Mpf.tt = "camlidl_mpf_mpf_init_set"
  external init_set_si : int -> 'Mpf.tt = "camlidl_mpf_mpf_init_set_si"
  external init_set_d : float -> 'Mpf.tt = "camlidl_mpf_mpf_init_set_d"
  external _init_set_str : string -> int -> 'Mpf.tt
    = "camlidl_mpf_mpf__init_set_str"
  val init_set_str : string -> base:int -> 'Mpf.tt
  external get_d : 'Mpf.tt -> float = "camlidl_mpf_mpf_get_d"
  external get_d_2exp : 'Mpf.tt -> float * int
    = "camlidl_mpf_mpf_get_d_2exp"
  external get_si : 'Mpf.tt -> nativeint = "camlidl_mpf_mpf_get_si"
  external get_int : 'Mpf.tt -> int = "camlidl_mpf_mpf_get_int"
  external get_z : Mpz.t -> 'Mpf.tt -> unit = "camlidl_mpf_mpf_get_z"
  external get_q : Mpq.t -> 'Mpf.tt -> unit = "camlidl_mpf_mpf_get_q"
  external _get_str : int -> int -> 'Mpf.tt -> string * int
    = "camlidl_mpf_mpf__get_str"
  val get_str : base:int -> digits:int -> 'Mpf.tt -> string * int
  val to_string : 'Mpf.tt -> string
  val to_float : 'Mpf.tt -> float
  val of_string : string -> 'Mpf.tt
  val of_float : float -> 'Mpf.tt
  val of_int : int -> 'Mpf.tt
  val of_mpz : 'Mpz.tt -> 'Mpf.tt
  val of_mpq : 'Mpq.tt -> 'Mpf.tt
  val is_integer : 'Mpf.tt -> bool
  external add : Mpf.t -> 'Mpf.tt -> 'Mpf.tt -> unit
    = "camlidl_mpf_mpf_add"
  external add_ui : Mpf.t -> 'Mpf.tt -> int -> unit
    = "camlidl_mpf_mpf_add_ui"
  external sub : Mpf.t -> 'Mpf.tt -> 'Mpf.tt -> unit
    = "camlidl_mpf_mpf_sub"
  external ui_sub : Mpf.t -> int -> 'Mpf.tt -> unit
    = "camlidl_mpf_mpf_ui_sub"
  external sub_ui : Mpf.t -> 'Mpf.tt -> int -> unit
    = "camlidl_mpf_mpf_sub_ui"
  external mul : Mpf.t -> 'Mpf.tt -> 'Mpf.tt -> unit
    = "camlidl_mpf_mpf_mul"
  external mul_ui : Mpf.t -> 'Mpf.tt -> int -> unit
    = "camlidl_mpf_mpf_mul_ui"
  external mul_2exp : Mpf.t -> 'Mpf.tt -> int -> unit
    = "camlidl_mpf_mpf_mul_2exp"
  external div : Mpf.t -> 'Mpf.tt -> 'Mpf.tt -> unit
    = "camlidl_mpf_mpf_div"
  external ui_div : Mpf.t -> int -> 'Mpf.tt -> unit
    = "camlidl_mpf_mpf_ui_div"
  external div_ui : Mpf.t -> 'Mpf.tt -> int -> unit
    = "camlidl_mpf_mpf_div_ui"
  external div_2exp : Mpf.t -> 'Mpf.tt -> int -> unit
    = "camlidl_mpf_mpf_div_2exp"
  external sqrt : Mpf.t -> 'Mpf.tt -> unit = "camlidl_mpf_mpf_sqrt"
  external pow_ui : Mpf.t -> 'Mpf.tt -> int -> unit
    = "camlidl_mpf_mpf_pow_ui"
  external neg : Mpf.t -> 'Mpf.tt -> unit = "camlidl_mpf_mpf_neg"
  external abs : Mpf.t -> 'Mpf.tt -> unit = "camlidl_mpf_mpf_abs"
  external cmp : 'Mpf.tt -> 'Mpf.tt -> int = "camlidl_mpf_mpf_cmp"
  external cmp_d : 'Mpf.tt -> float -> int = "camlidl_mpf_mpf_cmp_d"
  external cmp_si : 'Mpf.tt -> int -> int = "camlidl_mpf_mpf_cmp_si"
  external sgn : 'Mpf.tt -> int = "camlidl_mpf_mpf_sgn"
  external _equal : 'Mpf.tt -> 'Mpf.tt -> int -> bool
    = "camlidl_mpf_mpf__equal"
  val equal : 'Mpf.tt -> 'Mpf.tt -> bits:int -> bool
  external reldiff : Mpf.t -> 'Mpf.tt -> 'Mpf.tt -> unit
    = "camlidl_mpf_mpf_reldiff"
  external ceil : Mpf.t -> 'Mpf.tt -> unit = "camlidl_mpf_mpf_ceil"
  external floor : Mpf.t -> 'Mpf.tt -> unit = "camlidl_mpf_mpf_floor"
  external trunc : Mpf.t -> 'Mpf.tt -> unit = "camlidl_mpf_mpf_trunc"
  external integer_p : 'Mpf.tt -> bool = "camlidl_mpf_mpf_integer_p"
  external fits_int_p : 'Mpf.tt -> bool = "camlidl_mpf_mpf_fits_int_p"
  external fits_ulong_p : 'Mpf.tt -> bool = "camlidl_mpf_mpf_fits_ulong_p"
  external fits_slong_p : 'Mpf.tt -> bool = "camlidl_mpf_mpf_fits_slong_p"
  external fits_uint_p : 'Mpf.tt -> bool = "camlidl_mpf_mpf_fits_uint_p"
  external fits_sint_p : 'Mpf.tt -> bool = "camlidl_mpf_mpf_fits_sint_p"
  external fits_ushort_p : 'Mpf.tt -> bool
    = "camlidl_mpf_mpf_fits_ushort_p"
  external fits_sshort_p : 'Mpf.tt -> bool
    = "camlidl_mpf_mpf_fits_sshort_p"
end