Page
Library
Module
Module type
Parameter
Class
Class type
Source
Big_intOperations on arbitrary-precision integers.
Big integers (type big_int) are signed integers of arbitrary size.
val zero_big_int : big_intThe big integer 0.
val unit_big_int : big_intThe big integer 1.
sqrt_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.
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 + r and 0 <= r < |b|. Raise Division_by_zero if the divisor is zero.
Euclidean quotient of two big integers. This is the first result q of quomod_big_int (see above).
Euclidean modulus of two big integers. This is the second result r of quomod_big_int (see above).
val power_int_positive_int : int -> int -> big_intExponentiation functions. Return the big integer representing the first argument a 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 -> intReturn 0 if the given big integer is zero, 1 if it is positive, and -1 if it is negative.
compare_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 num_digits_big_int : big_int -> intReturn the number of machine words used to store the given big integer.
val num_bits_big_int : big_int -> intReturn the number of significant bits in the absolute value of the given big integer. num_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 -> stringReturn the string representation of the given big integer, in decimal (base 10).
val big_int_of_string : string -> big_intConvert a string to a big integer, in decimal. The string consists of an optional - or + sign, followed by one or several decimal digits.
val big_int_of_string_opt : string -> big_int optionConvert a string to a big integer, in decimal. The string consists of an optional - or + sign, followed by one or several decimal digits. Other the function returns None.
val big_int_of_int : int -> big_intConvert a small integer to a big integer.
val is_int_big_int : big_int -> boolTest 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 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 -> intConvert 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 int_of_big_int_opt : big_int -> int optionConvert a big integer to a small integer (type int). Return None if the big integer is not representable as a small integer.
val big_int_of_int32 : int32 -> big_intConvert a 32-bit integer to a big integer.
val big_int_of_nativeint : nativeint -> big_intConvert a native integer to a big integer.
val big_int_of_int64 : int64 -> big_intConvert a 64-bit integer to a big integer.
val int32_of_big_int : big_int -> int32Convert a big integer to a 32-bit integer. Raises Failure if the big integer is outside the range [-231, 231-1].
val int32_of_big_int_opt : big_int -> int32 optionConvert a big integer to a 32-bit integer. Return None if the big integer is outside the range [-231, 231-1].
val nativeint_of_big_int : big_int -> nativeintConvert a big integer to a native integer. Raises Failure if the big integer is outside the range [Nativeint.min_int, Nativeint.max_int].
val nativeint_of_big_int_opt : big_int -> nativeint optionConvert a big integer to a native integer. Return None if the big integer is outside the range [Nativeint.min_int, Nativeint.max_int];
val int64_of_big_int : big_int -> int64Convert a big integer to a 64-bit integer. Raises Failure if the big integer is outside the range [-263, 263-1].
val int64_of_big_int_opt : big_int -> int64 optionConvert a big integer to a 64-bit integer. Return None if the big integer is outside the range [-263, 263-1].
val float_of_big_int : big_int -> floatReturns a floating-point number approximating the given big integer.
Bitwise logical 'and'. The arguments must be positive or zero.
Bitwise logical 'or'. The arguments must be positive or zero.
Bitwise logical 'exclusive or'. The arguments must be positive or zero.
shift_left_big_int b n returns b shifted left by n bits. Equivalent to multiplication by 2^n.
shift_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.
shift_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.