/usr/lib/ocaml/gmp/gmp.mli is in libgmp-ocaml-dev 20021123-17+b4.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 336 337 338 339 340 341 342 343 344 345 346 347 348 349 350 351 352 353 354 355 356 357 358 359 360 361 362 363 364 365 366 367 368 369 370 371 372 373 374 375 376 377 378 379 380 381 382 383 384 | type rounding_mode = GMP_RNDN | GMP_RNDZ | GMP_RNDU | GMP_RNDD
module RNG :
sig
type randstate_t
and randalg_t = GMP_RAND_ALG_LC of int
val randinit : randalg_t -> randstate_t
val default : randstate_t
end
module Z2 :
sig
type t
external from_int : dest:t -> int -> unit = "_mlgmp_z2_from_int"
external from_string_base : dest:t -> base:int -> string -> unit
= "_mlgmp_z2_from_string_base"
external from_float : dest:t -> float -> unit = "_mlgmp_z2_from_float"
external create : unit -> t = "_mlgmp_z_create"
external copy : dest:t -> from:t -> unit = "_mlgmp_z2_copy"
external add : dest:t -> t -> t -> unit = "_mlgmp_z2_add"
external sub : dest:t -> t -> t -> unit = "_mlgmp_z2_sub"
external mul : dest:t -> t -> t -> unit = "_mlgmp_z2_mul"
external tdiv_q : dest:t -> t -> t -> unit = "_mlgmp_z2_tdiv_q"
external tdiv_r : dest:t -> t -> t -> unit = "_mlgmp_z2_tdiv_r"
external cdiv_q : dest:t -> t -> t -> unit = "_mlgmp_z2_cdiv_q"
external cdiv_r : dest:t -> t -> t -> unit = "_mlgmp_z2_cdiv_r"
external fdiv_q : dest:t -> t -> t -> unit = "_mlgmp_z2_fdiv_q"
external fdiv_r : dest:t -> t -> t -> unit = "_mlgmp_z2_fdiv_r"
external divexact : dest:t -> t -> t -> unit = "_mlgmp_z2_divexact"
external neg : dest:t -> t -> unit = "_mlgmp_z2_neg"
external abs : dest:t -> t -> unit = "_mlgmp_z2_abs"
end
module Z :
sig
type t = Z2.t
external copy : t -> t = "_mlgmp_z_copy"
external from_int : int -> t = "_mlgmp_z_from_int"
external of_int : int -> t = "_mlgmp_z_from_int"
external from_string_base : base:int -> string -> t
= "_mlgmp_z_from_string_base"
external from_float : float -> t = "_mlgmp_z_from_float"
external of_float : float -> t = "_mlgmp_z_from_float"
external to_string_base : base:int -> t -> string
= "_mlgmp_z_to_string_base"
external to_int : t -> int = "_mlgmp_z_to_int"
external to_float : t -> float = "_mlgmp_z_to_float"
external int_from : t -> int = "_mlgmp_z_to_int"
external float_from : t -> float = "_mlgmp_z_to_float"
external add : t -> t -> t = "_mlgmp_z_add"
external sub : t -> t -> t = "_mlgmp_z_sub"
external mul : t -> t -> t = "_mlgmp_z_mul"
external add_ui : t -> int -> t = "_mlgmp_z_add_ui"
external sub_ui : t -> int -> t = "_mlgmp_z_sub_ui"
external mul_ui : t -> int -> t = "_mlgmp_z_mul_ui"
external neg : t -> t = "_mlgmp_z_neg"
external abs : t -> t = "_mlgmp_z_abs"
external tdiv_qr : t -> t -> t * t = "_mlgmp_z_tdiv_qr"
external tdiv_q : t -> t -> t = "_mlgmp_z_tdiv_q"
external tdiv_r : t -> t -> t = "_mlgmp_z_tdiv_r"
external cdiv_qr : t -> t -> t * t = "_mlgmp_z_cdiv_qr"
external cdiv_q : t -> t -> t = "_mlgmp_z_cdiv_q"
external cdiv_r : t -> t -> t = "_mlgmp_z_cdiv_r"
external fdiv_qr : t -> t -> t * t = "_mlgmp_z_fdiv_qr"
external fdiv_q : t -> t -> t = "_mlgmp_z_fdiv_q"
external fdiv_r : t -> t -> t = "_mlgmp_z_fdiv_r"
external dmod : t -> t -> t = "_mlgmp_z_mod"
external dmod_ui : t -> int -> t = "_mlgmp_z_mod_ui"
external euclidean_division : t -> t -> t * t = "_mlgmp_z_fdiv_qr"
external modulo : t -> t -> t = "_mlgmp_z_mod"
external tdiv_qr_ui : t -> int -> t * t = "_mlgmp_z_tdiv_qr_ui"
external tdiv_q_ui : t -> int -> t = "_mlgmp_z_tdiv_q_ui"
external tdiv_r_ui : t -> int -> t = "_mlgmp_z_tdiv_r_ui"
external tdiv_ui : t -> int -> int = "_mlgmp_z_tdiv_ui"
external cdiv_qr_ui : t -> int -> t * t = "_mlgmp_z_cdiv_qr_ui"
external cdiv_q_ui : t -> int -> t = "_mlgmp_z_cdiv_q_ui"
external cdiv_r_ui : t -> int -> t = "_mlgmp_z_cdiv_r_ui"
external cdiv_ui : t -> int -> int = "_mlgmp_z_cdiv_ui"
external fdiv_qr_ui : t -> int -> t * t = "_mlgmp_z_fdiv_qr_ui"
external fdiv_q_ui : t -> int -> t = "_mlgmp_z_fdiv_q_ui"
external fdiv_r_ui : t -> int -> t = "_mlgmp_z_fdiv_r_ui"
external fdiv_ui : t -> int -> int = "_mlgmp_z_fdiv_ui"
external divexact : t -> t -> t = "_mlgmp_z_divexact"
external mul_2exp : t -> int -> t = "_mlgmp_z_mul_2exp"
external mul2exp : t -> int -> t = "_mlgmp_z_mul_2exp"
external tdiv_q_2exp : t -> int -> t = "_mlgmp_z_tdiv_q_2exp"
external tdiv_r_2exp : t -> int -> t = "_mlgmp_z_tdiv_r_2exp"
external fdiv_q_2exp : t -> int -> t = "_mlgmp_z_fdiv_q_2exp"
external fdiv_r_2exp : t -> int -> t = "_mlgmp_z_fdiv_r_2exp"
external cdiv_q_2exp : t -> int -> t = "_mlgmp_z_cdiv_q_2exp"
external cdiv_r_2exp : t -> int -> t = "_mlgmp_z_cdiv_r_2exp"
external powm : t -> t -> t -> t = "_mlgmp_z_powm"
external powm_ui : t -> int -> t -> t = "_mlgmp_z_powm_ui"
external pow_ui : t -> int -> t = "_mlgmp_z_pow_ui"
external ui_pow_ui : int -> int -> t = "_mlgmp_z_ui_pow_ui"
external pow_ui_ui : int -> int -> t = "_mlgmp_z_ui_pow_ui"
external sqrt : t -> t = "_mlgmp_z_sqrt"
external sqrtrem : t -> t * t = "_mlgmp_z_sqrtrem"
external root : t -> int -> t = "_mlgmp_z_root"
external perfect_power_p : t -> bool = "_mlgmp_z_perfect_power_p"
external perfect_square_p : t -> bool = "_mlgmp_z_perfect_square_p"
external is_perfect_power : t -> bool = "_mlgmp_z_perfect_power_p"
external is_perfect_square : t -> bool = "_mlgmp_z_perfect_square_p"
external probab_prime_p : t -> int -> bool = "_mlgmp_z_probab_prime_p"
external is_probab_prime : t -> int -> bool = "_mlgmp_z_probab_prime_p"
external nextprime : t -> t = "_mlgmp_z_nextprime"
external gcd : t -> t -> t = "_mlgmp_z_gcd"
external gcd_ui : t -> t -> t = "_mlgmp_z_gcd_ui"
external lcm : t -> t -> t = "_mlgmp_z_lcm"
external gcdext : t -> t -> t * t * t = "_mlgmp_z_gcdext"
external inverse : t -> t -> t option = "_mlgmp_z_invert"
external legendre : t -> t -> int = "_mlgmp_z_legendre"
external jacobi : t -> t -> int = "_mlgmp_z_jacobi"
external kronecker_si : t -> int -> int = "_mlgmp_z_kronecker_si"
external si_kronecker : int -> t -> int = "_mlgmp_z_si_kronecker"
external remove : t -> t -> t * int = "_mlgmp_z_remove"
external fac_ui : int -> t = "_mlgmp_z_fac_ui"
external fib_ui : int -> t = "_mlgmp_z_fib_ui"
external bin_ui : n:t -> k:int -> t = "_mlgmp_z_bin_ui"
external bin_uiui : n:int -> k:int -> t = "_mlgmp_z_bin_uiui"
external cmp : t -> t -> int = "_mlgmp_z_compare"
external cmp_si : t -> int -> int = "_mlgmp_z_compare_si"
external compare : t -> t -> int = "_mlgmp_z_compare"
external compare_si : t -> int -> int = "_mlgmp_z_compare_si"
external compare_int : t -> int -> int = "_mlgmp_z_compare_si"
external sgn : t -> int = "_mlgmp_z_sgn"
external band : t -> t -> t = "_mlgmp_z_and"
external bior : t -> t -> t = "_mlgmp_z_ior"
external bxor : t -> t -> t = "_mlgmp_z_xor"
external bcom : t -> t = "_mlgmp_z_com"
external popcount : t -> int = "_mlgmp_z_popcount"
external hamdist : t -> t -> int = "_mlgmp_z_hamdist"
external scan0 : t -> int -> int = "_mlgmp_z_scan0"
external scan1 : t -> int -> int = "_mlgmp_z_scan1"
external urandomb : state:RNG.randstate_t -> nbits:int -> t
= "_mlgmp_z_urandomb"
external urandomm : state:RNG.randstate_t -> n:t -> t
= "_mlgmp_z_urandomm"
external rrandomb : state:RNG.randstate_t -> nbits:int -> t
= "_mlgmp_z_rrandomb"
val zero : t
val one : t
val is_prime : ?prec:int -> t -> bool
val equal : t -> t -> bool
val equal_int : t -> int -> bool
val is_zero : t -> bool
val to_string : t -> string
val from_string : string -> t
val string_from : t -> string
val output : out_channel -> t -> unit
val sprintf : unit -> t -> string
val print : Format.formatter -> t -> unit
val succ : t -> t
val pred : t -> t
val min : t -> t -> t
val max : t -> t -> t
module Infixes :
sig
external ( +! ) : t -> t -> t = "_mlgmp_z_add"
external ( -! ) : t -> t -> t = "_mlgmp_z_sub"
external ( *! ) : t -> t -> t = "_mlgmp_z_mul"
external ( /! ) : t -> t -> t = "_mlgmp_z_fdiv_q"
external ( %! ) : t -> t -> t = "_mlgmp_z_fdiv_r"
val ( <! ) : t -> t -> bool
val ( <=! ) : t -> t -> bool
val ( =! ) : t -> t -> bool
val ( >=! ) : t -> t -> bool
val ( >! ) : t -> t -> bool
val ( <>! ) : t -> t -> bool
end
end
module Q :
sig
type t
external create : unit -> t = "_mlgmp_q_create"
external from_z : Z.t -> t = "_mlgmp_q_from_z"
external from_si : int -> int -> t = "_mlgmp_q_from_si"
external from_ints : int -> int -> t = "_mlgmp_q_from_si"
val from_int : int -> t
external from_float : float -> t = "_mlgmp_q_from_float"
external float_from : t -> float = "_mlgmp_q_to_float"
external to_float : t -> float = "_mlgmp_q_to_float"
external add : t -> t -> t = "_mlgmp_q_add"
external sub : t -> t -> t = "_mlgmp_q_sub"
external mul : t -> t -> t = "_mlgmp_q_mul"
external div : t -> t -> t = "_mlgmp_q_div"
external neg : t -> t = "_mlgmp_q_neg"
external inv : t -> t = "_mlgmp_q_inv"
external get_num : t -> Z.t = "_mlgmp_q_get_num"
external get_den : t -> Z.t = "_mlgmp_q_get_den"
external cmp : t -> t -> int = "_mlgmp_q_cmp"
external compare : t -> t -> int = "_mlgmp_q_cmp"
external cmp_ui : t -> int -> int -> int = "_mlgmp_q_cmp_ui"
external sgn : t -> int = "_mlgmp_q_sgn"
val zero : t
val is_zero : t -> bool
val from_zs : Z.t -> Z.t -> t
val equal : t -> t -> bool
val output : out_channel -> t -> unit
val to_string : t -> string
val sprintf : unit -> t -> string
module Infixes :
sig
external ( +/ ) : t -> t -> t = "_mlgmp_q_add"
external ( -/ ) : t -> t -> t = "_mlgmp_q_sub"
external ( */ ) : t -> t -> t = "_mlgmp_q_mul"
external ( // ) : t -> t -> t = "_mlgmp_q_div"
val ( </ ) : t -> t -> bool
val ( <=/ ) : t -> t -> bool
val ( =/ ) : t -> t -> bool
val ( >=/ ) : t -> t -> bool
val ( >/ ) : t -> t -> bool
val ( <>/ ) : t -> t -> bool
end
end
module F :
sig
type t
val zero: t
external create : unit -> t = "_mlgmp_f_create"
val default_prec : int ref
external from_z_prec : prec:int -> Z.t -> t = "_mlgmp_f_from_z"
external from_q_prec : prec:int -> Z.t -> t = "_mlgmp_f_from_q"
external from_si_prec : prec:int -> int -> t = "_mlgmp_f_from_si"
external from_float_prec : prec:int -> float -> t = "_mlgmp_f_from_float"
external from_string_prec_base : prec:int -> base:int -> string -> t
= "_mlgmp_f_from_string"
external float_from : t->float = "_mlgmp_f_to_float";;
external to_float : t->float = "_mlgmp_f_to_float";;
external to_string_exp_base_digits :
base:int -> digits:int -> t -> string * int
= "_mlgmp_f_to_string_exp_base_digits"
external add_prec : prec:int -> t -> t -> t = "_mlgmp_f_add"
external sub_prec : prec:int -> t -> t -> t = "_mlgmp_f_sub"
external mul_prec : prec:int -> t -> t -> t = "_mlgmp_f_mul"
external div_prec : prec:int -> t -> t -> t = "_mlgmp_f_div"
external add_prec_ui : prec:int -> t -> int -> t = "_mlgmp_f_add_ui"
external sub_prec_ui : prec:int -> t -> int -> t = "_mlgmp_f_sub_ui"
external mul_prec_ui : prec:int -> t -> int -> t = "_mlgmp_f_mul_ui"
external div_prec_ui : prec:int -> t -> int -> t = "_mlgmp_f_div_ui"
external neg_prec : prec:int -> t -> t = "_mlgmp_f_neg"
external abs_prec : prec:int -> t -> t = "_mlgmp_f_abs"
external inv_prec : prec:int -> t -> t = "_mlgmp_f_div"
external reldiff_prec : prec:int -> t -> t = "_mlgmp_f_reldiff"
external floor_prec : prec:int -> t -> t = "_mlgmp_f_floor"
external ceil_prec : prec:int -> t -> t = "_mlgmp_f_ceil"
external trunc_prec : prec:int -> t -> t = "_mlgmp_f_trunc"
val from_z : Z.t -> t
val from_q : Z.t -> t
val from_si : int -> t
val from_int : int -> t
val from_float : float -> t
val from_string_base : base:int -> string -> t
val from_string : string -> t
val add : t -> t -> t
val sub : t -> t -> t
val mul : t -> t -> t
val div : t -> t -> t
val reldiff : t -> t
val add_ui : t -> int -> t
val sub_ui : t -> int -> t
val mul_ui : t -> int -> t
val div_ui : t -> int -> t
val neg : t -> t
val abs : t -> t
val inv : t -> t
val floor : t -> t
val ceil : t -> t
val trunc : t -> t
external cmp : t -> t -> int = "_mlgmp_f_cmp"
external compare : t -> t -> int = "_mlgmp_f_cmp"
external sgn : t -> int = "_mlgmp_f_sgn"
external eq : t -> t -> prec:int -> bool = "_mlgmp_f_eq"
external urandomb_prec :
prec:int -> state:RNG.randstate_t -> nbits:int -> t
= "_mlgmp_f_urandomb"
external random2 : prec:int -> nlimbs:int -> max_exp:int -> t
= "_mlgmp_f_random2"
val urandomb : state:RNG.randstate_t -> nbits:int -> t
val equal : t -> t -> bool
val to_string_base_digits : base:int -> digits:int -> t -> string
val to_string : t -> string
end
module FR :
sig
type t
val zero: t
external create_prec : prec: int -> unit -> t = "_mlgmp_fr_create"
val create: unit -> t
val default_prec : int ref
external from_z_prec : prec:int -> mode:rounding_mode -> Z.t -> t
= "_mlgmp_fr_from_z"
external from_q_prec : prec:int -> mode:rounding_mode -> Z.t -> t
= "_mlgmp_fr_from_z"
external from_si_prec : prec:int -> mode:rounding_mode -> int -> t
= "_mlgmp_fr_from_si"
external from_float_prec : prec:int -> mode:rounding_mode -> float -> t
= "_mlgmp_fr_from_float"
external float_from : t->float = "_mlgmp_fr_to_float";;
external to_float_mode : mode:rounding_mode -> t -> float =
"_mlgmp_fr_to_float";;
external from_string_prec_base :
prec:int -> mode:rounding_mode -> base:int -> string -> t
= "_mlgmp_fr_from_string"
external to_string_exp_base_digits :
mode:rounding_mode -> base:int -> digits:int -> t -> string * int
= "_mlgmp_fr_to_string_exp_base_digits"
external add_prec : prec:int -> mode:rounding_mode -> t -> t -> t
= "_mlgmp_fr_add"
external sub_prec : prec:int -> mode:rounding_mode -> t -> t -> t
= "_mlgmp_fr_sub"
external mul_prec : prec:int -> mode:rounding_mode -> t -> t -> t
= "_mlgmp_fr_mul"
external div_prec : prec:int -> mode:rounding_mode -> t -> t -> t
= "_mlgmp_fr_div"
external add_prec_ui : prec:int -> mode:rounding_mode -> t -> int -> t
= "_mlgmp_fr_add_ui"
external sub_prec_ui : prec:int -> mode:rounding_mode -> t -> int -> t
= "_mlgmp_fr_sub_ui"
external mul_prec_ui : prec:int -> mode:rounding_mode -> t -> int -> t
= "_mlgmp_fr_mul_ui"
external div_prec_ui : prec:int -> mode:rounding_mode -> t -> int -> t
= "_mlgmp_fr_div_ui"
external neg_prec : prec:int -> mode:rounding_mode -> t -> t
= "_mlgmp_fr_neg"
external abs_prec : prec:int -> mode:rounding_mode -> t -> t
= "_mlgmp_fr_abs"
external inv_prec : prec:int -> mode:rounding_mode -> t -> t
= "_mlgmp_fr_div"
external reldiff_prec : prec:int -> mode:rounding_mode -> t -> t
= "_mlgmp_fr_reldiff"
external ceil_prec : prec:int -> t -> t = "_mlgmp_fr_ceil"
external floor_prec : prec:int -> t -> t = "_mlgmp_fr_floor"
external trunc_prec : prec:int -> t -> t = "_mlgmp_fr_trunc"
external cmp : t -> t -> int = "_mlgmp_fr_cmp"
external compare : t -> t -> int = "_mlgmp_fr_cmp"
external sgn : t -> int = "_mlgmp_fr_sgn"
external eq : t -> t -> prec:int -> bool = "_mlgmp_fr_eq"
external is_nan : t -> bool = "_mlgmp_fr_is_nan"
external urandomb : prec:int -> state:RNG.randstate_t -> t
= "_mlgmp_fr_urandomb"
external random : prec:int -> t = "_mlgmp_fr_random"
external random2 : prec:int -> nlimbs:int -> max_exp:int -> t
= "_mlgmp_fr_random2"
val from_z : Z.t -> t
val from_q : Z.t -> t
val from_si : int -> t
val from_int : int -> t
val from_float : float -> t
val to_float : t -> float
val from_string_base : base:int -> string -> t
val from_string : string -> t
val add : t -> t -> t
val sub : t -> t -> t
val mul : t -> t -> t
val div : t -> t -> t
val reldiff : t -> t
val add_ui : t -> int -> t
val sub_ui : t -> int -> t
val mul_ui : t -> int -> t
val div_ui : t -> int -> t
val neg : t -> t
val abs : t -> t
val inv : t -> t
val floor : t -> t
val ceil : t -> t
val trunc : t -> t
val equal : t -> t -> bool
val to_string_base_digits :
mode:rounding_mode -> base:int -> digits:int -> t -> string
val to_string : t -> string
external to_z_exp : t->Z.t*int = "_mlgmp_fr_to_z_exp";;
val to_z_t : t->Z.t
val to_z_c : t->Z.t
val to_z_f : t->Z.t
val to_z : t->Z.t
val z_from : t->Z.t
external is_available : unit -> bool = "_mlgmp_is_mpfr_available"
end
exception Unimplemented of string
external get_gmp_runtime_version : unit -> string
= "_mlgmp_get_runtime_version"
external get_gmp_compile_version : unit -> int * int * int
= "_mlgmp_get_compile_version"
|