Module Extraction_plugin.Big
Arithmetic operations
val add_int : int -> Big_int.big_int -> Big_int.big_int
Addition of a small integer to a big integer.
val mult_int : int -> Big_int.big_int -> Big_int.big_int
Multiplication of a big integer by a small integer
val sqrt : Big_int.big_int -> Big_int.big_int
sqrt_big_int a
returns the integer square root ofa
, that is, the largest big integerr
such thatr * r <= a
. RaiseInvalid_argument
ifa
is negative.
val quomod : Big_int.big_int -> Big_int.big_int -> Big_int.big_int * Big_int.big_int
Euclidean division of two big integers. The first part of the result is the quotient, the second part is the remainder. Writing
(q,r) = quomod_big_int a b
, we havea = q * b + r
and0 <= r < |b|
. RaiseDivision_by_zero
if the divisor is zero.
val div : Big_int.big_int -> Big_int.big_int -> Big_int.big_int
Euclidean quotient of two big integers. This is the first result
q
ofquomod_big_int
(see above).
val modulo : Big_int.big_int -> Big_int.big_int -> Big_int.big_int
Euclidean modulus of two big integers. This is the second result
r
ofquomod_big_int
(see above).
val gcd : Big_int.big_int -> Big_int.big_int -> Big_int.big_int
Greatest common divisor of two big integers.
val power : Big_int.big_int -> Big_int.big_int -> Big_int.big_int
Exponentiation functions. Return the big integer representing the first argument
a
raised to the powerb
(the second argument). Depending on the function,a
andb
can be either small integers or big integers. RaiseInvalid_argument
ifb
is negative.
Comparisons and tests
val sign : Big_int.big_int -> int
Return
0
if the given big integer is zero,1
if it is positive, and-1
if it is negative.
val compare : Big_int.big_int -> Big_int.big_int -> int
compare_big_int a b
returns0
ifa
andb
are equal,1
ifa
is greater thanb
, and-1
ifa
is smaller thanb
.
val eq : Big_int.big_int -> Big_int.big_int -> bool
val le : Big_int.big_int -> Big_int.big_int -> bool
val ge : Big_int.big_int -> Big_int.big_int -> bool
val lt : Big_int.big_int -> Big_int.big_int -> bool
val gt : Big_int.big_int -> Big_int.big_int -> bool
Usual boolean comparisons between two big integers.
Conversions to and from strings
Conversions to and from other numerical types
val is_int : Big_int.big_int -> bool
Test whether the given big integer is small enough to be representable as a small integer (type
int
) without loss of precision. On a 32-bit platform,is_int_big_int a
returnstrue
if and only ifa
is between 230 and 230-1. On a 64-bit platform,is_int_big_int a
returnstrue
if and only ifa
is between -262 and 262-1.
val to_int : Big_int.big_int -> int
Convert a big integer to a small integer (type
int
). RaisesFailure "int_of_big_int"
if the big integer is not representable as a small integer.
val double : Big_int.big_int -> Big_int.big_int
val doubleplusone : Big_int.big_int -> Big_int.big_int
val nat_case : (unit -> 'a) -> (Big_int.big_int -> 'a) -> Big_int.big_int -> 'a
val positive_case : (Big_int.big_int -> 'a) -> (Big_int.big_int -> 'a) -> (unit -> 'a) -> Big_int.big_int -> 'a
val n_case : (unit -> 'a) -> (Big_int.big_int -> 'a) -> Big_int.big_int -> 'a
val z_case : (unit -> 'a) -> (Big_int.big_int -> 'a) -> (Big_int.big_int -> 'a) -> Big_int.big_int -> 'a
val compare_case : 'a -> 'a -> 'a -> Big_int.big_int -> Big_int.big_int -> 'a
val nat_rec : 'a -> ('a -> 'a) -> Big_int.big_int -> 'a
val positive_rec : ('a -> 'a) -> ('a -> 'a) -> 'a -> Big_int.big_int -> 'a
val z_rec : 'a -> (Big_int.big_int -> 'a) -> (Big_int.big_int -> 'a) -> Big_int.big_int -> 'a