module Safe_int:Safe operations on integers.sig
..end
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 Number.Overflow
.
This module implements Number.Numeric
,
Number.Bounded
, Number.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 Pervasives.(/)
.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 Pervasives.(/)
.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
a <> b
is true if and only if a
and b
have
different values.val (>) : t -> t -> bool
a > b
is true if and only if a
is strictly greater than b
.val (<) : t -> t -> bool
a < b
is true if and only if a
is strictly smaller than b
.val (>=) : t -> t -> bool
a >= b
is true if and only if a
is greater or equal to b
.val (<=) : t -> t -> bool
a <= b
is true if and only if a
is smaller or equalto b
.val (=) : t -> t -> bool
a = b
if and only if a
and b
have the same value.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
Pervasives.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 BatNumber.numeric
val of_int : int -> t
val to_int : t -> int
val print : 'a BatInnerIO.output -> t -> unit