module Big_int:sig..end
Big integers (type big_int) are signed integers of arbitrary size.
type big_int
val zero_big_int : big_int0.val unit_big_int : big_int1.val minus_big_int : big_int -> big_intval abs_big_int : big_int -> big_intval add_big_int : big_int -> big_int -> big_intval succ_big_int : big_int -> big_intval add_int_big_int : int -> big_int -> big_intval sub_big_int : big_int -> big_int -> big_intval pred_big_int : big_int -> big_intval mult_big_int : big_int -> big_int -> big_intval mult_int_big_int : int -> big_int -> big_intval square_big_int : big_int -> big_intval sqrt_big_int : big_int -> big_intsqrt_big_int a returns the integer square root of a,
that is, the largest big integer r such that r * r <= a.
Raise Invalid_argument if a is negative.val quomod_big_int : big_int -> big_int -> big_int * big_int(q,r) = quomod_big_int a b, we have
a = q * b + r and 0 <= r < |b|.
Raise Division_by_zero if the divisor is zero.val div_big_int : big_int -> big_int -> big_intq of quomod_big_int (see above).val mod_big_int : big_int -> big_int -> big_intr of quomod_big_int (see above).val gcd_big_int : big_int -> big_int -> big_intval power_int_positive_int : int -> int -> big_int
val power_big_int_positive_int : big_int -> int -> big_int
val power_int_positive_big_int : int -> big_int -> big_int
val power_big_int_positive_big_int : big_int -> big_int -> big_inta raised to the power b
(the second argument). Depending
on the function, a and b can be either small integers
or big integers. Raise Invalid_argument if b is negative.val sign_big_int : big_int -> int0 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 -> intcompare_big_int a b returns 0 if a and b are equal,
1 if a is greater than b, and -1 if a is smaller
than b.val eq_big_int : big_int -> big_int -> bool
val le_big_int : big_int -> big_int -> bool
val ge_big_int : big_int -> big_int -> bool
val lt_big_int : big_int -> big_int -> bool
val gt_big_int : big_int -> big_int -> boolval max_big_int : big_int -> big_int -> big_intval min_big_int : big_int -> big_int -> big_intval num_digits_big_int : big_int -> intval num_bits_big_int : big_int -> intnum_bits_big_int a
returns 0 if a is 0; otherwise it returns a positive
integer n such that 2^(n-1) <= |a| < 2^n.val string_of_big_int : big_int -> stringval big_int_of_string : string -> big_int- or + sign,
followed by one or several decimal digits.val big_int_of_string_opt : string -> big_int option- or + sign,
followed by one or several decimal digits. Other the function
returns None.val big_int_of_int : int -> big_intval is_int_big_int : big_int -> boolint)
without loss of precision. On a 32-bit platform,
is_int_big_int a returns true if and only if
a is between 230 and 230-1. On a 64-bit platform,
is_int_big_int a returns true if and only if
a is between -262 and 262-1.val int_of_big_int : big_int -> intint).
Raises Failure "int_of_big_int" if the big integer
is not representable as a small integer.val int_of_big_int_opt : big_int -> int optionint). Return
None if the big integer is not representable as a small
integer.val big_int_of_int32 : int32 -> big_intval big_int_of_nativeint : nativeint -> big_intval big_int_of_int64 : int64 -> big_intval int32_of_big_int : big_int -> int32Failure if the big integer is outside the
range [-231, 231-1].val int32_of_big_int_opt : big_int -> int32 optionNone if the
big integer is outside the range [-231, 231-1].val nativeint_of_big_int : big_int -> nativeintFailure if the big integer is outside the
range [Nativeint.min_int, Nativeint.max_int].val nativeint_of_big_int_opt : big_int -> nativeint optionNone if the
big integer is outside the range [Nativeint.min_int,
Nativeint.max_int];val int64_of_big_int : big_int -> int64Failure if the big integer is outside the
range [-263, 263-1].val int64_of_big_int_opt : big_int -> int64 optionNone if the
big integer is outside the range [-263, 263-1].val float_of_big_int : big_int -> floatval and_big_int : big_int -> big_int -> big_intval or_big_int : big_int -> big_int -> big_intval xor_big_int : big_int -> big_int -> big_intval shift_left_big_int : big_int -> int -> big_intshift_left_big_int b n returns b shifted left by n bits.
Equivalent to multiplication by 2^n.val shift_right_big_int : big_int -> int -> big_intshift_right_big_int b n returns b shifted right by n bits.
Equivalent to division by 2^n with the result being
rounded towards minus infinity.val shift_right_towards_zero_big_int : big_int -> int -> big_intshift_right_towards_zero_big_int b n returns b shifted
right by n bits. The shift is performed on the absolute
value of b, and the result has the same sign as b.
Equivalent to division by 2^n with the result being
rounded towards zero.val extract_big_int : big_int -> int -> int -> big_intextract_big_int bi ofs n returns a nonnegative number
corresponding to bits ofs to ofs + n - 1 of the
binary representation of bi. If bi is negative,
a two's complement representation is used.