sig
  type mpfr_float
  exception Not_Implemented
  val set_emin : int -> unit
  val set_emax : int -> unit
  val set_default_prec : int -> unit
  type mpfr_rnd_t =
      To_Nearest
    | Toward_Zero
    | Toward_Plus_Infinity
    | Toward_Minus_Infinity
    | Away_From_Zero
    | Faithful
  type sign = Positive | Negative
  val add :
    ?rnd:Mlmpfr_wrapper.mpfr_rnd_t ->
    ?prec:int ->
    Mlmpfr_wrapper.mpfr_float ->
    Mlmpfr_wrapper.mpfr_float -> Mlmpfr_wrapper.mpfr_float
  val neg :
    ?rnd:Mlmpfr_wrapper.mpfr_rnd_t ->
    ?prec:int -> Mlmpfr_wrapper.mpfr_float -> Mlmpfr_wrapper.mpfr_float
  val mul :
    ?rnd:Mlmpfr_wrapper.mpfr_rnd_t ->
    ?prec:int ->
    Mlmpfr_wrapper.mpfr_float ->
    Mlmpfr_wrapper.mpfr_float -> Mlmpfr_wrapper.mpfr_float
  val div :
    ?rnd:Mlmpfr_wrapper.mpfr_rnd_t ->
    ?prec:int ->
    Mlmpfr_wrapper.mpfr_float ->
    Mlmpfr_wrapper.mpfr_float -> Mlmpfr_wrapper.mpfr_float
  val sqrt :
    ?rnd:Mlmpfr_wrapper.mpfr_rnd_t ->
    ?prec:int -> Mlmpfr_wrapper.mpfr_float -> Mlmpfr_wrapper.mpfr_float
  val sub :
    ?rnd:Mlmpfr_wrapper.mpfr_rnd_t ->
    ?prec:int ->
    Mlmpfr_wrapper.mpfr_float ->
    Mlmpfr_wrapper.mpfr_float -> Mlmpfr_wrapper.mpfr_float
  val abs :
    ?rnd:Mlmpfr_wrapper.mpfr_rnd_t ->
    ?prec:int -> Mlmpfr_wrapper.mpfr_float -> Mlmpfr_wrapper.mpfr_float
  val fma :
    ?rnd:Mlmpfr_wrapper.mpfr_rnd_t ->
    ?prec:int ->
    Mlmpfr_wrapper.mpfr_float ->
    Mlmpfr_wrapper.mpfr_float ->
    Mlmpfr_wrapper.mpfr_float -> Mlmpfr_wrapper.mpfr_float
  val rint :
    ?rnd:Mlmpfr_wrapper.mpfr_rnd_t ->
    ?prec:int -> Mlmpfr_wrapper.mpfr_float -> Mlmpfr_wrapper.mpfr_float
  val exp :
    ?rnd:Mlmpfr_wrapper.mpfr_rnd_t ->
    ?prec:int -> Mlmpfr_wrapper.mpfr_float -> Mlmpfr_wrapper.mpfr_float
  val log :
    ?rnd:Mlmpfr_wrapper.mpfr_rnd_t ->
    ?prec:int -> Mlmpfr_wrapper.mpfr_float -> Mlmpfr_wrapper.mpfr_float
  val min :
    ?rnd:Mlmpfr_wrapper.mpfr_rnd_t ->
    ?prec:int ->
    Mlmpfr_wrapper.mpfr_float ->
    Mlmpfr_wrapper.mpfr_float -> Mlmpfr_wrapper.mpfr_float
  val max :
    ?rnd:Mlmpfr_wrapper.mpfr_rnd_t ->
    ?prec:int ->
    Mlmpfr_wrapper.mpfr_float ->
    Mlmpfr_wrapper.mpfr_float -> Mlmpfr_wrapper.mpfr_float
  val signbit : Mlmpfr_wrapper.mpfr_float -> Mlmpfr_wrapper.sign
  val subnormalize :
    ?rnd:Mlmpfr_wrapper.mpfr_rnd_t ->
    Mlmpfr_wrapper.mpfr_float -> Mlmpfr_wrapper.mpfr_float
  val make_from_str :
    ?prec:int ->
    ?rnd:Mlmpfr_wrapper.mpfr_rnd_t ->
    ?base:int -> string -> Mlmpfr_wrapper.mpfr_float
  val make_from_int :
    ?prec:int ->
    ?rnd:Mlmpfr_wrapper.mpfr_rnd_t -> int -> Mlmpfr_wrapper.mpfr_float
  val make_zero :
    ?prec:int -> Mlmpfr_wrapper.sign -> Mlmpfr_wrapper.mpfr_float
  val get_formatted_str :
    ?rnd:Mlmpfr_wrapper.mpfr_rnd_t ->
    ?base:int -> ?size:int -> Mlmpfr_wrapper.mpfr_float -> string
  val greater_p :
    Mlmpfr_wrapper.mpfr_float -> Mlmpfr_wrapper.mpfr_float -> bool
  val greaterequal_p :
    Mlmpfr_wrapper.mpfr_float -> Mlmpfr_wrapper.mpfr_float -> bool
  val less_p : Mlmpfr_wrapper.mpfr_float -> Mlmpfr_wrapper.mpfr_float -> bool
  val lessequal_p :
    Mlmpfr_wrapper.mpfr_float -> Mlmpfr_wrapper.mpfr_float -> bool
  val equal_p :
    Mlmpfr_wrapper.mpfr_float -> Mlmpfr_wrapper.mpfr_float -> bool
  val lessgreater_p :
    Mlmpfr_wrapper.mpfr_float -> Mlmpfr_wrapper.mpfr_float -> bool
  val zero_p : Mlmpfr_wrapper.mpfr_float -> bool
  val nan_p : Mlmpfr_wrapper.mpfr_float -> bool
  val inf_p : Mlmpfr_wrapper.mpfr_float -> bool
  val const_pi :
    ?rnd:Mlmpfr_wrapper.mpfr_rnd_t -> int -> Mlmpfr_wrapper.mpfr_float
end