Up — package num Operation on arbitrary-precision numbers.
Numbers (type num) are arbitrary-precision rational numbers,
plus the special elements 1/0 (infinity) and 0/0 (undefined).
type num = | Int of int| Big_int of Big_int.big_int| Ratio of Ratio.ratio
Arithmetic operations
Euclidean division: quotient.
Euclidean division: remainder.
incr r is r:=!r+1, where r is a reference to a number.
decr r is r:=!r-1, where r is a reference to a number.
val is_integer_num : num -> boolTest if a number is an integer
The four following functions approximate a number by an integer :
integer_num n returns the integer closest to n. In case of ties,
rounds towards zero.
floor_num n returns the largest integer smaller or equal to n.
round_num n returns the integer closest to n. In case of ties,
rounds off zero.
ceiling_num n returns the smallest integer bigger or equal to n.
val sign_num : num -> intReturn -1, 0 or 1 according to the sign of the argument.
Comparisons between numbers
val (<=/) : num -> num -> bool
val (>=/) : num -> num -> bool
val (<>/) : num -> num -> bool
val eq_num : num -> num -> bool
val lt_num : num -> num -> bool
val le_num : num -> num -> bool
val gt_num : num -> num -> bool
val ge_num : num -> num -> bool
val compare_num : num -> num -> intReturn -1, 0 or 1 if the first argument is less than,
equal to, or greater than the second argument.
Return the greater of the two arguments.
Return the smaller of the two arguments.
Coercions with strings
val string_of_num : num -> stringConvert a number to a string, using fractional notation.
val approx_num_fix : int -> num -> stringval approx_num_exp : int -> num -> stringApproximate a number by a decimal. The first argument is the
required precision. The second argument is the number to
approximate. Num.approx_num_fix uses decimal notation; the first
argument is the number of digits after the decimal point.
approx_num_exp uses scientific (exponential) notation; the
first argument is the number of digits in the mantissa.
val num_of_string : string -> num Convert a string to a number.
Raise Failure "num_of_string" if the given string is not
a valid representation of an integer
val num_of_string_opt : string -> num optionConvert a string to a number.
Return None if the given string is not
a valid representation of an integer.
Coercions between numerical types
val int_of_num : num -> int
val int_of_num_opt : num -> int optionval num_of_int : int -> num
val nat_of_num : num -> Nat.nat
val nat_of_num_opt : num -> Nat.nat optionval num_of_nat : Nat.nat -> num
val num_of_big_int : Big_int.big_int -> num
val big_int_of_num : num -> Big_int.big_int
val big_int_of_num_opt : num -> Big_int.big_int optionval ratio_of_num : num -> Ratio.ratio
val num_of_ratio : Ratio.ratio -> num
val float_of_num : num -> float