Module Num
module Num: sig .. end
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 =
The type of numbers.
Arithmetic operations
val minus_num : num -> num
Unary negation.
val mult_num : num -> num -> num
Multiplication
val square_num : num -> num
Squaring
val quo_num : num -> num -> num
Euclidean division: quotient.
val mod_num : num -> num -> num
Euclidean division: remainder.
val power_num : num -> num -> num
Exponentiation
val abs_num : num -> num
Absolute value.
val succ_num : num -> num
succ n
is n+1
val pred_num : num -> num
pred n
is n-1
val incr_num : num Pervasives.ref -> unit
incr r
is r:=!r+1
, where r
is a reference to a number.
val decr_num : num Pervasives.ref -> unit
decr r
is r:=!r-1
, where r
is a reference to a number.
val is_integer_num : num -> bool
Test if a number is an integer
The four following functions approximate a number by an integer :
val integer_num : num -> num
integer_num n
returns the integer closest to n
. In case of ties,
rounds towards zero.
val floor_num : num -> num
floor_num n
returns the largest integer smaller or equal to n
.
val round_num : num -> num
round_num n
returns the integer closest to n
. In case of ties,
rounds off zero.
val ceiling_num : num -> num
ceiling_num n
returns the smallest integer bigger or equal to n
.
val sign_num : num -> int
Return -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 -> int
Return -1
, 0
or 1
if the first argument is less than,
equal to, or greater than the second argument.
val max_num : num -> num -> num
Return the greater of the two arguments.
val min_num : num -> num -> num
Return the smaller of the two arguments.
Coercions with strings
val string_of_num : num -> string
Convert a number to a string, using fractional notation.
val approx_num_fix : int -> num -> string
val approx_num_exp : int -> num -> string
Approximate 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
Coercions between numerical types
val int_of_num : num -> int
val num_of_int : int -> num
val float_of_num : num -> float