sig
external mpc_compiled_version : unit -> int * int * int
= "mlmpc_compiled_version"
external mpc_compiled_version_string : unit -> string
= "mlmpc_compiled_version_string"
external mpc_get_version_string : unit -> string
= "mlmpc_get_version_string"
type c
type rounding_mode =
[ `A | `D | `N | `U | `Z ] * [ `A | `D | `N | `U | `Z ]
external c_of_based_string :
prec:int * int -> mode:Mpc.rounding_mode -> base:int -> string -> Mpc.c
= "mlmpc_c_of_based_string"
val c_of_string :
prec:int * int -> mode:Mpc.rounding_mode -> string -> Mpc.c
external based_string_of_c :
mode:Mpc.rounding_mode -> base:int -> Mpc.c -> string
= "mlmpc_based_string_of_c"
val string_of_c : mode:Mpc.rounding_mode -> Mpc.c -> string
external c_of_int :
prec:int * int -> mode:Mpc.rounding_mode -> int -> Mpc.c
= "mlmpc_c_of_int"
external c_of_float :
prec:int * int -> mode:Mpc.rounding_mode -> float -> Mpc.c
= "mlmpc_c_of_float"
external c_of_z :
prec:int * int -> mode:Mpc.rounding_mode -> Gmp.z -> Mpc.c
= "mlmpc_c_of_z"
external c_of_q :
prec:int * int -> mode:Mpc.rounding_mode -> Gmp.q -> Mpc.c
= "mlmpc_c_of_q"
external c_of_f :
prec:int * int -> mode:Mpc.rounding_mode -> Gmp.f -> Mpc.c
= "mlmpc_c_of_f"
external c_of_fr :
prec:int * int -> mode:Mpc.rounding_mode -> Mpfr.fr -> Mpc.c
= "mlmpc_c_of_fr"
module C :
sig
type t = Mpc.c
val zero : prec:int * int -> Mpc.C.t
val one : prec:int * int -> Mpc.C.t
val minus_one : prec:int * int -> Mpc.C.t
val i : prec:int * int -> Mpc.C.t
external compare : Mpc.C.t -> Mpc.C.t -> int = "mlmpc_c_compare"
external compare_int : Mpc.C.t -> int -> int = "mlmpc_c_compare_int"
external neg :
prec:int * int -> mode:Mpc.rounding_mode -> Mpc.C.t -> Mpc.C.t
= "mlmpc_c_neg"
external abs :
prec:int -> mode:Mpfr.rounding_mode -> Mpc.C.t -> Mpfr.fr
= "mlmpc_c_abs"
external add :
prec:int * int ->
mode:Mpc.rounding_mode -> Mpc.C.t -> Mpc.C.t -> Mpc.C.t
= "mlmpc_c_add"
external add_int :
prec:int * int -> mode:Mpc.rounding_mode -> Mpc.C.t -> int -> Mpc.C.t
= "mlmpc_c_add_int"
external sub :
prec:int * int ->
mode:Mpc.rounding_mode -> Mpc.C.t -> Mpc.C.t -> Mpc.C.t
= "mlmpc_c_sub"
external sub_int :
prec:int * int -> mode:Mpc.rounding_mode -> Mpc.C.t -> int -> Mpc.C.t
= "mlmpc_c_sub_int"
external mul :
prec:int * int ->
mode:Mpc.rounding_mode -> Mpc.C.t -> Mpc.C.t -> Mpc.C.t
= "mlmpc_c_mul"
external mul_int :
prec:int * int -> mode:Mpc.rounding_mode -> Mpc.C.t -> int -> Mpc.C.t
= "mlmpc_c_mul_int"
external div :
prec:int * int ->
mode:Mpc.rounding_mode -> Mpc.C.t -> Mpc.C.t -> Mpc.C.t
= "mlmpc_c_div"
external fma :
prec:int * int ->
mode:Mpc.rounding_mode -> Mpc.C.t -> Mpc.C.t -> Mpc.C.t -> Mpc.C.t
= "mlmpc_c_fma"
external pow_int :
prec:int * int ->
mode:Mpc.rounding_mode -> base:Mpc.C.t -> exponent:int -> Mpc.C.t
= "mlmpc_c_pow_int"
external int_pow_int :
prec:int * int ->
mode:Mpc.rounding_mode -> base:int -> exponent:int -> Mpc.C.t
= "mlmpc_c_int_pow_int"
external scale :
prec:int * int ->
mode:Mpc.rounding_mode ->
Mpc.C.t -> base:int -> exponent:int -> Mpc.C.t = "mlmpc_c_scale"
external root :
prec:int * int ->
mode:Mpc.rounding_mode -> nth:int -> Mpc.C.t -> Mpc.C.t
= "mlmpc_c_root"
external sqrt :
prec:int * int -> mode:Mpc.rounding_mode -> Mpc.C.t -> Mpc.C.t
= "mlmpc_c_sqrt"
external log :
prec:int * int -> mode:Mpc.rounding_mode -> Mpc.C.t -> Mpc.C.t
= "mlmpc_c_log"
external based_log :
prec:int * int ->
mode:Mpc.rounding_mode -> base:int -> Mpc.C.t -> Mpc.C.t
= "mlmpc_c_based_log"
external pow :
prec:int * int ->
mode:Mpc.rounding_mode -> Mpc.C.t -> Mpc.C.t -> Mpc.C.t
= "mlmpc_c_pow"
external exp :
prec:int * int -> mode:Mpc.rounding_mode -> Mpc.C.t -> Mpc.C.t
= "mlmpc_c_exp"
external conj :
prec:int * int -> mode:Mpc.rounding_mode -> Mpc.C.t -> Mpc.C.t
= "mlmpc_c_conj"
external norm2 :
prec:int -> mode:Mpfr.rounding_mode -> Mpc.C.t -> Mpfr.fr
= "mlmpc_c_norm2"
external arg :
prec:int -> mode:Mpfr.rounding_mode -> Mpc.C.t -> Mpfr.fr
= "mlmpc_c_arg"
external polar :
prec:int * int ->
mode:Mpc.rounding_mode -> Mpfr.fr -> Mpfr.fr -> Mpc.C.t
= "mlmpc_c_polar"
external proj :
prec:int * int -> mode:Mpc.rounding_mode -> Mpc.C.t -> Mpc.C.t
= "mlmpc_c_proj"
external real : Mpc.C.t -> Mpfr.fr = "mlmpc_c_real"
external imag : Mpc.C.t -> Mpfr.fr = "mlmpc_c_imag"
external of_based_string :
prec:int * int ->
mode:Mpc.rounding_mode -> base:int -> string -> Mpc.C.t
= "mlmpc_c_of_based_string"
val of_string :
prec:int * int -> mode:Mpc.rounding_mode -> string -> Mpc.C.t
external to_based_string :
mode:Mpc.rounding_mode -> base:int -> Mpc.C.t -> string
= "mlmpc_based_string_of_c"
val to_string : mode:Mpc.rounding_mode -> Mpc.C.t -> string
external of_int :
prec:int * int -> mode:Mpc.rounding_mode -> int -> Mpc.C.t
= "mlmpc_c_of_int"
external of_float :
prec:int * int -> mode:Mpc.rounding_mode -> float -> Mpc.C.t
= "mlmpc_c_of_float"
external of_z :
prec:int * int -> mode:Mpc.rounding_mode -> Gmp.z -> Mpc.C.t
= "mlmpc_c_of_z"
external of_q :
prec:int * int -> mode:Mpc.rounding_mode -> Gmp.q -> Mpc.C.t
= "mlmpc_c_of_q"
external of_f :
prec:int * int -> mode:Mpc.rounding_mode -> Gmp.f -> Mpc.C.t
= "mlmpc_c_of_f"
external of_fr :
prec:int * int -> mode:Mpc.rounding_mode -> Mpfr.fr -> Mpc.C.t
= "mlmpc_c_of_fr"
external make_int :
prec:int * int -> mode:Mpc.rounding_mode -> int -> int -> Mpc.C.t
= "mlmpc_c_make_int"
external make_float :
prec:int * int -> mode:Mpc.rounding_mode -> float -> float -> Mpc.C.t
= "mlmpc_c_make_float"
external make_z :
prec:int * int -> mode:Mpc.rounding_mode -> Gmp.z -> Gmp.z -> Mpc.C.t
= "mlmpc_c_make_z"
external make_q :
prec:int * int -> mode:Mpc.rounding_mode -> Gmp.q -> Gmp.q -> Mpc.C.t
= "mlmpc_c_make_q"
external make_f :
prec:int * int -> mode:Mpc.rounding_mode -> Gmp.f -> Gmp.f -> Mpc.C.t
= "mlmpc_c_make_f"
external make_fr :
prec:int * int ->
mode:Mpc.rounding_mode -> Mpfr.fr -> Mpfr.fr -> Mpc.C.t
= "mlmpc_c_make_fr"
module type Param =
sig val prec : int * int val mode : Mpc.rounding_mode end
module Make :
Param ->
sig
type t = Mpc.c
val zero : Mpc.C.Make.t
val one : Mpc.C.Make.t
val minus_one : Mpc.C.Make.t
val i : Mpc.C.Make.t
external compare : Mpc.C.Make.t -> Mpc.C.Make.t -> int
= "mlmpc_c_compare"
external compare_int : Mpc.C.Make.t -> int -> int
= "mlmpc_c_compare_int"
val neg : Mpc.C.Make.t -> Mpc.C.Make.t
val abs : Mpc.C.Make.t -> Mpfr.fr
val add : Mpc.C.Make.t -> Mpc.C.Make.t -> Mpc.C.Make.t
val add_int : Mpc.C.Make.t -> int -> Mpc.C.Make.t
val sub : Mpc.C.Make.t -> Mpc.C.Make.t -> Mpc.C.Make.t
val sub_int : Mpc.C.Make.t -> int -> Mpc.C.Make.t
val mul : Mpc.C.Make.t -> Mpc.C.Make.t -> Mpc.C.Make.t
val mul_int : Mpc.C.Make.t -> int -> Mpc.C.Make.t
val div : Mpc.C.Make.t -> Mpc.C.Make.t -> Mpc.C.Make.t
val fma :
Mpc.C.Make.t -> Mpc.C.Make.t -> Mpc.C.Make.t -> Mpc.C.Make.t
val pow_int : base:Mpc.C.Make.t -> exponent:int -> Mpc.C.Make.t
val int_pow_int : base:int -> exponent:int -> Mpc.C.Make.t
val scale :
Mpc.C.Make.t -> base:int -> exponent:int -> Mpc.C.Make.t
val root : nth:int -> Mpc.C.Make.t -> Mpc.C.Make.t
val sqrt : Mpc.C.Make.t -> Mpc.C.Make.t
val log : Mpc.C.Make.t -> Mpc.C.Make.t
val based_log : base:int -> Mpc.C.Make.t -> Mpc.C.Make.t
val pow : Mpc.C.Make.t -> Mpc.C.Make.t -> Mpc.C.Make.t
val exp : Mpc.C.Make.t -> Mpc.C.Make.t
val conj : Mpc.C.Make.t -> Mpc.C.Make.t
val norm2 : Mpc.C.Make.t -> Mpfr.fr
val arg : Mpc.C.Make.t -> Mpfr.fr
val polar : Mpfr.fr -> Mpfr.fr -> Mpc.C.Make.t
val proj : Mpc.C.Make.t -> Mpc.C.Make.t
external real : Mpc.C.Make.t -> Mpfr.fr = "mlmpc_c_real"
external imag : Mpc.C.Make.t -> Mpfr.fr = "mlmpc_c_imag"
val of_based_string : base:int -> string -> Mpc.C.Make.t
val of_string : string -> Mpc.C.Make.t
val to_based_string : base:int -> Mpc.C.Make.t -> string
val to_string : Mpc.C.Make.t -> string
val of_int : int -> Mpc.C.Make.t
val of_float : float -> Mpc.C.Make.t
val of_z : Gmp.z -> Mpc.C.Make.t
val of_q : Gmp.q -> Mpc.C.Make.t
val of_f : Gmp.f -> Mpc.C.Make.t
val of_fr : Mpfr.fr -> Mpc.C.Make.t
val make_int : int -> int -> Mpc.C.Make.t
val make_float : float -> float -> Mpc.C.Make.t
val make_z : Gmp.z -> Gmp.z -> Mpc.C.Make.t
val make_q : Gmp.q -> Gmp.q -> Mpc.C.Make.t
val make_f : Gmp.f -> Gmp.f -> Mpc.C.Make.t
val make_fr : Mpfr.fr -> Mpfr.fr -> Mpc.C.Make.t
end
val default_prec : unit -> int * int
external default_rounding_mode : unit -> Mpc.rounding_mode
= "mlmpc_c_default_rounding_mode"
val default : unit -> (module Mpc.C.Param)
end
end