]> rtime.felk.cvut.cz Git - l4.git/blob - l4/pkg/ocaml/ocaml/contrib/stdlib/int32.ml
Update
[l4.git] / l4 / pkg / ocaml / ocaml / contrib / stdlib / int32.ml
1 (***********************************************************************)
2 (*                                                                     *)
3 (*                           Objective Caml                            *)
4 (*                                                                     *)
5 (*            Xavier Leroy, projet Cristal, INRIA Rocquencourt         *)
6 (*                                                                     *)
7 (*  Copyright 1996 Institut National de Recherche en Informatique et   *)
8 (*  en Automatique.  All rights reserved.  This file is distributed    *)
9 (*  under the terms of the GNU Library General Public License, with    *)
10 (*  the special exception on linking described in file ../LICENSE.     *)
11 (*                                                                     *)
12 (***********************************************************************)
13
14 (* $Id: int32.ml 7818 2007-01-30 09:34:36Z xleroy $ *)
15
16 (* Module [Int32]: 32-bit integers *)
17
18 external neg : int32 -> int32 = "%int32_neg"
19 external add : int32 -> int32 -> int32 = "%int32_add"
20 external sub : int32 -> int32 -> int32 = "%int32_sub"
21 external mul : int32 -> int32 -> int32 = "%int32_mul"
22 external div : int32 -> int32 -> int32 = "%int32_div"
23 external rem : int32 -> int32 -> int32 = "%int32_mod"
24 external logand : int32 -> int32 -> int32 = "%int32_and"
25 external logor : int32 -> int32 -> int32 = "%int32_or"
26 external logxor : int32 -> int32 -> int32 = "%int32_xor"
27 external shift_left : int32 -> int -> int32 = "%int32_lsl"
28 external shift_right : int32 -> int -> int32 = "%int32_asr"
29 external shift_right_logical : int32 -> int -> int32 = "%int32_lsr"
30 external of_int : int -> int32 = "%int32_of_int"
31 external to_int : int32 -> int = "%int32_to_int"
32 external of_float : float -> int32 = "caml_int32_of_float"
33 external to_float : int32 -> float = "caml_int32_to_float"
34 external bits_of_float : float -> int32 = "caml_int32_bits_of_float"
35 external float_of_bits : int32 -> float = "caml_int32_float_of_bits"
36
37 let zero = 0l
38 let one = 1l
39 let minus_one = -1l
40 let succ n = add n 1l
41 let pred n = sub n 1l
42 let abs n = if n >= 0l then n else neg n
43 let min_int = 0x80000000l
44 let max_int = 0x7FFFFFFFl
45 let lognot n = logxor n (-1l)
46
47 external format : string -> int32 -> string = "caml_int32_format"
48 let to_string n = format "%d" n
49
50 external of_string : string -> int32 = "caml_int32_of_string"
51
52 type t = int32
53
54 let compare (x: t) (y: t) = Pervasives.compare x y