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 areturns the integer square root of- a, that is, the largest big integer- rsuch that- r * r <= a. Raise- Invalid_argumentif- ais 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 have- a = q * b + rand- 0 <= r < |b|. Raise- Division_by_zeroif 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 - qof- quomod_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 - rof- quomod_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 - araised to the power- b(the second argument). Depending on the function,- aand- bcan be either small integers or big integers. Raise- Invalid_argumentif- bis negative.
Comparisons and tests
- val sign : Big_int.big_int -> int
- Return - 0if the given big integer is zero,- 1if it is positive, and- -1if it is negative.
- val compare : Big_int.big_int -> Big_int.big_int -> int
- compare_big_int a breturns- 0if- aand- bare equal,- 1if- ais greater than- b, and- -1if- ais smaller than- b.
- 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 areturns- trueif and only if- ais between 230 and 230-1. On a 64-bit platform,- is_int_big_int areturns- trueif and only if- ais between -262 and 262-1.
- val to_int : Big_int.big_int -> int
- Convert a big integer to a small integer (type - int). Raises- Failure "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