module Safe_int: Extlib.ExtInt.Safe_int
Safe operations on integers.
This module provides operations on the type int
of
integers. Values of this type may be either 31 bits on 32-bit
processors or 63 bits on 64-bit processors. Operations which
overflow raise exception Numeric.Overflow
.
This module implements Numeric.Numeric
,
Numeric.Bounded
, Numeric.Discrete
.
Important note Untested.
typet =
int
val zero : t
0
.val one : t
1
.val minus_one : t
-1
.val neg : t -> t
val add : t ->
t -> t
val (+) : t ->
t -> t
val sub : t ->
t -> t
val (-) : t ->
t -> t
val mul : t ->
t -> t
val ( * ) : t ->
t -> t
val div : t ->
t -> t
Division_by_zero
if the second
argument is zero. This division rounds the real quotient of
its arguments towards zero, as specified for Standard.(/)
.val (/) : t ->
t -> t
Division_by_zero
if the second
argument is zero. This division rounds the real quotient of
its arguments towards zero, as specified for Standard.(/)
.val rem : t ->
t -> t
y
is not zero, the result
of Int.rem x y
satisfies the following property:
x = Int.add (Int.mul (Int.div x y) y) (Int.rem x y)
.
If y = 0
, Int.rem x y
raises Division_by_zero
.val modulo : t ->
t -> t
modulo a b
computes the remainder of the integer
division of a
by b
. This is defined only if b <> 0
.
The result of modulo a b
is a number m
between
0
and abs ( b - 1 )
if a >= 0
or between ~- ( abs ( b - 1 ) )
if a < 0
and such that a * k + (abs b) = m
,
for some k
.
val pow : t ->
t -> t
pow a b
computes abval ( ** ) : t ->
t -> t
a ** b
computes abval (<>) : t -> t -> bool
val (>) : t -> t -> bool
val (<) : t -> t -> bool
val (>=) : t -> t -> bool
val (<=) : t -> t -> bool
val (=) : t -> t -> bool
val min_num : t
val max_num : t
val succ : t -> t
succ x
is add x one
.val pred : t -> t
pred x
is sub x one
.val abs : t -> t
val of_float : float -> t
Int.min_int
, Int.max_int
].val to_float : t -> float
val of_string : string -> t
0x
, 0o
or 0b
respectively.
Raise Invalid_argument "int_of_string"
if the given string is not
a valid representation of an integer, or if the integer represented
exceeds the range of integers representable in type int
.val to_string : t -> string
val compare : t -> t -> int
Standard.compare
. Along with the type t
, this function compare
allows the module Int
to be passed as argument to the functors
Set.Make
and Map.Make
.val operations : t Numeric.numeric
val of_int : int -> t
val to_int : t -> int
val t_of_sexp : Sexplib.Sexp.t -> t
val sexp_of_t : t -> Sexplib.Sexp.t
val print : 'a Extlib.InnerIO.output -> t -> unit