sig
external mpfr_compiled_version : unit -> int * int * int
= "mlmpfr_compiled_version"
external mpfr_compiled_version_string : unit -> string
= "mlmpfr_compiled_version_string"
external mpfr_get_version_string : unit -> string
= "mlmpfr_get_version_string"
type fr
type rounding_mode = [ `A | `D | `F | `N | `NA | `U | `Z ]
external fr_of_based_string :
prec:int -> mode:Mpfr.rounding_mode -> base:int -> string -> Mpfr.fr
= "mlmpfr_fr_of_based_string"
val fr_of_string : prec:int -> mode:Mpfr.rounding_mode -> string -> Mpfr.fr
external based_string_of_fr :
mode:Mpfr.rounding_mode -> base:int -> Mpfr.fr -> string
= "mlmpfr_based_string_of_fr"
val string_of_fr : mode:Mpfr.rounding_mode -> Mpfr.fr -> string
external fr_get_str :
mode:Mpfr.rounding_mode -> base:int -> int -> Mpfr.fr -> string * int
= "mlmpfr_fr_get_str"
external fr_of_int : prec:int -> mode:Mpfr.rounding_mode -> int -> Mpfr.fr
= "mlmpfr_fr_of_int"
external fr_of_float :
prec:int -> mode:Mpfr.rounding_mode -> float -> Mpfr.fr
= "mlmpfr_fr_of_float"
external float_of_fr : mode:Mpfr.rounding_mode -> Mpfr.fr -> float
= "mlmpfr_float_of_fr"
external fr_of_z : prec:int -> mode:Mpfr.rounding_mode -> Gmp.z -> Mpfr.fr
= "mlmpfr_fr_of_z"
external z_of_fr : mode:Mpfr.rounding_mode -> Mpfr.fr -> Gmp.z
= "mlmpfr_z_of_fr"
val z_of_truncated_fr : Mpfr.fr -> Gmp.z
external fr_of_fr :
prec:int -> mode:Mpfr.rounding_mode -> Mpfr.fr -> Mpfr.fr
= "mlmpfr_fr_of_fr"
module FR :
sig
type t = Mpfr.fr
val zero : prec:int -> Mpfr.FR.t
val one : prec:int -> Mpfr.FR.t
val minus_one : prec:int -> Mpfr.FR.t
external compare : Mpfr.FR.t -> Mpfr.FR.t -> int = "mlmpfr_fr_compare"
external compare_int : Mpfr.FR.t -> int -> int
= "mlmpfr_fr_compare_int"
external neg :
prec:int -> mode:Mpfr.rounding_mode -> Mpfr.FR.t -> Mpfr.FR.t
= "mlmpfr_fr_neg"
external abs :
prec:int -> mode:Mpfr.rounding_mode -> Mpfr.FR.t -> Mpfr.FR.t
= "mlmpfr_fr_abs"
external add :
prec:int ->
mode:Mpfr.rounding_mode -> Mpfr.FR.t -> Mpfr.FR.t -> Mpfr.FR.t
= "mlmpfr_fr_add"
external add_int :
prec:int -> mode:Mpfr.rounding_mode -> Mpfr.FR.t -> int -> Mpfr.FR.t
= "mlmpfr_fr_add_int"
external sub :
prec:int ->
mode:Mpfr.rounding_mode -> Mpfr.FR.t -> Mpfr.FR.t -> Mpfr.FR.t
= "mlmpfr_fr_sub"
external sub_int :
prec:int -> mode:Mpfr.rounding_mode -> Mpfr.FR.t -> int -> Mpfr.FR.t
= "mlmpfr_fr_sub_int"
external mul :
prec:int ->
mode:Mpfr.rounding_mode -> Mpfr.FR.t -> Mpfr.FR.t -> Mpfr.FR.t
= "mlmpfr_fr_mul"
external mul_int :
prec:int -> mode:Mpfr.rounding_mode -> Mpfr.FR.t -> int -> Mpfr.FR.t
= "mlmpfr_fr_mul_int"
external div :
prec:int ->
mode:Mpfr.rounding_mode -> Mpfr.FR.t -> Mpfr.FR.t -> Mpfr.FR.t
= "mlmpfr_fr_div"
external fma :
prec:int ->
mode:Mpfr.rounding_mode ->
Mpfr.FR.t -> Mpfr.FR.t -> Mpfr.FR.t -> Mpfr.FR.t = "mlmpfr_fr_fma"
external pow_int :
prec:int ->
mode:Mpfr.rounding_mode ->
base:Mpfr.FR.t -> exponent:int -> Mpfr.FR.t = "mlmpfr_fr_pow_int"
external int_pow_int :
prec:int ->
mode:Mpfr.rounding_mode -> base:int -> exponent:int -> Mpfr.FR.t
= "mlmpfr_fr_int_pow_int"
external scale :
prec:int ->
mode:Mpfr.rounding_mode ->
Mpfr.FR.t -> base:int -> exponent:int -> Mpfr.FR.t
= "mlmpfr_fr_scale"
external root :
prec:int ->
mode:Mpfr.rounding_mode -> nth:int -> Mpfr.FR.t -> Mpfr.FR.t
= "mlmpfr_fr_root"
external sqrt :
prec:int -> mode:Mpfr.rounding_mode -> Mpfr.FR.t -> Mpfr.FR.t
= "mlmpfr_fr_sqrt"
external nearly_equal : int -> Mpfr.FR.t -> Mpfr.FR.t -> bool
= "mlmpfr_fr_nearly_equal"
external frexp :
prec:int -> mode:Mpfr.rounding_mode -> Mpfr.FR.t -> Mpfr.FR.t * int
= "mlmpfr_fr_frexp"
external ldexp :
prec:int -> mode:Mpfr.rounding_mode -> Mpfr.FR.t -> int -> Mpfr.FR.t
= "mlmpfr_fr_ldexp"
external trunc : prec:int -> Mpfr.FR.t -> Mpfr.FR.t = "mlmpfr_fr_trunc"
external ceil : prec:int -> Mpfr.FR.t -> Mpfr.FR.t = "mlmpfr_fr_ceil"
external floor : prec:int -> Mpfr.FR.t -> Mpfr.FR.t = "mlmpfr_fr_floor"
external is_infinite : Mpfr.FR.t -> bool = "mlmpfr_fr_is_infinite"
external pi : prec:int -> mode:Mpfr.rounding_mode -> Mpfr.FR.t
= "mlmpfr_fr_pi"
external log :
prec:int -> mode:Mpfr.rounding_mode -> Mpfr.FR.t -> Mpfr.FR.t
= "mlmpfr_fr_log"
external based_log :
prec:int ->
mode:Mpfr.rounding_mode -> base:int -> Mpfr.FR.t -> Mpfr.FR.t
= "mlmpfr_fr_based_log"
external pow :
prec:int ->
mode:Mpfr.rounding_mode -> Mpfr.FR.t -> Mpfr.FR.t -> Mpfr.FR.t
= "mlmpfr_fr_pow"
external exp :
prec:int -> mode:Mpfr.rounding_mode -> Mpfr.FR.t -> Mpfr.FR.t
= "mlmpfr_fr_exp"
external sin :
prec:int -> mode:Mpfr.rounding_mode -> Mpfr.FR.t -> Mpfr.FR.t
= "mlmpfr_fr_sin"
external cos :
prec:int -> mode:Mpfr.rounding_mode -> Mpfr.FR.t -> Mpfr.FR.t
= "mlmpfr_fr_cos"
external tan :
prec:int -> mode:Mpfr.rounding_mode -> Mpfr.FR.t -> Mpfr.FR.t
= "mlmpfr_fr_tan"
external atan :
prec:int -> mode:Mpfr.rounding_mode -> Mpfr.FR.t -> Mpfr.FR.t
= "mlmpfr_fr_atan"
external atan2 :
prec:int ->
mode:Mpfr.rounding_mode -> Mpfr.FR.t -> Mpfr.FR.t -> Mpfr.FR.t
= "mlmpfr_fr_atan2"
external acosh :
prec:int -> mode:Mpfr.rounding_mode -> Mpfr.FR.t -> Mpfr.FR.t
= "mlmpfr_fr_acosh"
external of_based_string :
prec:int ->
mode:Mpfr.rounding_mode -> base:int -> string -> Mpfr.FR.t
= "mlmpfr_fr_of_based_string"
val of_string :
prec:int -> mode:Mpfr.rounding_mode -> string -> Mpfr.FR.t
external to_based_string :
mode:Mpfr.rounding_mode -> base:int -> Mpfr.FR.t -> string
= "mlmpfr_based_string_of_fr"
val to_string : mode:Mpfr.rounding_mode -> Mpfr.FR.t -> string
external of_int :
prec:int -> mode:Mpfr.rounding_mode -> int -> Mpfr.FR.t
= "mlmpfr_fr_of_int"
external of_float :
prec:int -> mode:Mpfr.rounding_mode -> float -> Mpfr.FR.t
= "mlmpfr_fr_of_float"
external to_float : mode:Mpfr.rounding_mode -> Mpfr.FR.t -> float
= "mlmpfr_float_of_fr"
external of_z :
prec:int -> mode:Mpfr.rounding_mode -> Gmp.z -> Mpfr.FR.t
= "mlmpfr_fr_of_z"
external to_z : mode:Mpfr.rounding_mode -> Mpfr.FR.t -> Gmp.z
= "mlmpfr_z_of_fr"
module type Param =
sig val prec : int val mode : Mpfr.rounding_mode end
module Make :
Param ->
sig
type t = Mpfr.fr
val zero : Mpfr.FR.Make.t
val one : Mpfr.FR.Make.t
val minus_one : Mpfr.FR.Make.t
external compare : Mpfr.FR.Make.t -> Mpfr.FR.Make.t -> int
= "mlmpfr_fr_compare"
external compare_int : Mpfr.FR.Make.t -> int -> int
= "mlmpfr_fr_compare_int"
val neg : Mpfr.FR.Make.t -> Mpfr.FR.Make.t
val abs : Mpfr.FR.Make.t -> Mpfr.FR.Make.t
val add : Mpfr.FR.Make.t -> Mpfr.FR.Make.t -> Mpfr.FR.Make.t
val add_int : Mpfr.FR.Make.t -> int -> Mpfr.FR.Make.t
val sub : Mpfr.FR.Make.t -> Mpfr.FR.Make.t -> Mpfr.FR.Make.t
val sub_int : Mpfr.FR.Make.t -> int -> Mpfr.FR.Make.t
val mul : Mpfr.FR.Make.t -> Mpfr.FR.Make.t -> Mpfr.FR.Make.t
val mul_int : Mpfr.FR.Make.t -> int -> Mpfr.FR.Make.t
val div : Mpfr.FR.Make.t -> Mpfr.FR.Make.t -> Mpfr.FR.Make.t
val fma :
Mpfr.FR.Make.t ->
Mpfr.FR.Make.t -> Mpfr.FR.Make.t -> Mpfr.FR.Make.t
val pow_int :
base:Mpfr.FR.Make.t -> exponent:int -> Mpfr.FR.Make.t
val int_pow_int : base:int -> exponent:int -> Mpfr.FR.Make.t
val scale :
Mpfr.FR.Make.t -> base:int -> exponent:int -> Mpfr.FR.Make.t
val root : nth:int -> Mpfr.FR.Make.t -> Mpfr.FR.Make.t
val sqrt : Mpfr.FR.Make.t -> Mpfr.FR.Make.t
external nearly_equal :
int -> Mpfr.FR.Make.t -> Mpfr.FR.Make.t -> bool
= "mlmpfr_fr_nearly_equal"
val frexp : Mpfr.FR.Make.t -> Mpfr.FR.Make.t * int
val ldexp : Mpfr.FR.Make.t -> int -> Mpfr.FR.Make.t
val trunc : Mpfr.FR.Make.t -> Mpfr.FR.Make.t
val ceil : Mpfr.FR.Make.t -> Mpfr.FR.Make.t
val floor : Mpfr.FR.Make.t -> Mpfr.FR.Make.t
external is_infinite : Mpfr.FR.Make.t -> bool
= "mlmpfr_fr_is_infinite"
val pi : Mpfr.FR.Make.t
val log : Mpfr.FR.Make.t -> Mpfr.FR.Make.t
val based_log : base:int -> Mpfr.FR.Make.t -> Mpfr.FR.Make.t
val pow : Mpfr.FR.Make.t -> Mpfr.FR.Make.t -> Mpfr.FR.Make.t
val exp : Mpfr.FR.Make.t -> Mpfr.FR.Make.t
val sin : Mpfr.FR.Make.t -> Mpfr.FR.Make.t
val cos : Mpfr.FR.Make.t -> Mpfr.FR.Make.t
val tan : Mpfr.FR.Make.t -> Mpfr.FR.Make.t
val atan : Mpfr.FR.Make.t -> Mpfr.FR.Make.t
val atan2 : Mpfr.FR.Make.t -> Mpfr.FR.Make.t -> Mpfr.FR.Make.t
val acosh : Mpfr.FR.Make.t -> Mpfr.FR.Make.t
val of_based_string : base:int -> string -> Mpfr.FR.Make.t
val of_string : string -> Mpfr.FR.Make.t
val to_based_string : base:int -> Mpfr.FR.Make.t -> string
val to_string : Mpfr.FR.Make.t -> string
val of_int : int -> Mpfr.FR.Make.t
val of_float : float -> Mpfr.FR.Make.t
val to_float : Mpfr.FR.Make.t -> float
val of_z : Gmp.z -> Mpfr.FR.Make.t
val to_z : Mpfr.FR.Make.t -> Gmp.z
end
external default_prec : unit -> int = "mlmpfr_fr_default_prec"
external default_rounding_mode : unit -> Mpfr.rounding_mode
= "mlmpfr_fr_default_rounding_mode"
val default : unit -> (module Mpfr.FR.Param)
external bits_of_single : Mpfr.fr -> int32 = "mlmpfr_fr_bits_of_single"
external bits_of_double : Mpfr.fr -> int64 = "mlmpfr_fr_bits_of_double"
external bits_of_extended : Mpfr.fr -> int64 * int
= "mlmpfr_fr_bits_of_extended"
external single_of_bits : int32 -> Mpfr.fr = "mlmpfr_fr_single_of_bits"
external double_of_bits : int64 -> Mpfr.fr = "mlmpfr_fr_double_of_bits"
external extended_of_bits : int64 * int -> Mpfr.fr
= "mlmpfr_fr_extended_of_bits"
end
end