jon.recoil.org

Module Std.Num

include module type of struct include Num end
type num = Num.num =
  1. | Int of int
  2. | Big_int of Big_int.big_int
  3. | Ratio of Ratio.ratio

The type of numbers.

Arithmetic operations

Unary negation.

Euclidean division: quotient.

Euclidean division: remainder.

Absolute value.

succ n is n+1

pred n is n-1

val incr_num : Sexplib_num.Std.Num.num Stdlib.ref -> unit

incr r is r:=!r+1, where r is a reference to a number.

val decr_num : Sexplib_num.Std.Num.num Stdlib.ref -> unit

decr r is r:=!r-1, where r is a reference to a number.

val is_integer_num : Sexplib_num.Std.Num.num -> bool

Test 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 : Sexplib_num.Std.Num.num -> int

Return -1, 0 or 1 according to the sign of the argument.

Comparisons between numbers

Return -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 : Sexplib_num.Std.Num.num -> string

Convert a number to a string, using fractional notation.

val approx_num_fix : int -> Sexplib_num.Std.Num.num -> string
val approx_num_exp : int -> Sexplib_num.Std.Num.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 -> Sexplib_num.Std.Num.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 -> Sexplib_num.Std.Num.num option

Convert a string to a number. Return None if the given string is not a valid representation of an integer.

  • since 4.05
Coercions between numerical types
val int_of_num : Sexplib_num.Std.Num.num -> int
val int_of_num_opt : Sexplib_num.Std.Num.num -> int option
val num_of_int : int -> Sexplib_num.Std.Num.num
val nat_of_num : Sexplib_num.Std.Num.num -> Nat.nat
val nat_of_num_opt : Sexplib_num.Std.Num.num -> Nat.nat option
val num_of_nat : Nat.nat -> Sexplib_num.Std.Num.num
val big_int_of_num_opt : Sexplib_num.Std.Num.num -> Big_int.big_int option
val ratio_of_num : Sexplib_num.Std.Num.num -> Ratio.ratio
val num_of_ratio : Ratio.ratio -> Sexplib_num.Std.Num.num
val float_of_num : Sexplib_num.Std.Num.num -> float
val sexp_of_num : Num.num -> Sexplib.Sexp.t
val num_of_sexp : Sexplib.Sexp.t -> Num.num