forked from ocaml/ocaml
-
Notifications
You must be signed in to change notification settings - Fork 2
/
Copy pathtargetint_intf.mli
130 lines (99 loc) · 3.41 KB
/
targetint_intf.mli
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
(**************************************************************************)
(* *)
(* OCaml *)
(* *)
(* Xavier Leroy, projet Cristal, INRIA Rocquencourt *)
(* Nicolas Ojeda Bar, LexiFi *)
(* Mark Shinwell, Jane Street Europe *)
(* *)
(* Copyright 2016 Institut National de Recherche en Informatique et *)
(* en Automatique. *)
(* Copyright 2017--2019 Jane Street Group LLC *)
(* *)
(* All rights reserved. This file is distributed under the terms of *)
(* the GNU Lesser General Public License version 2.1, with the *)
(* special exception on linking described in the file LICENSE. *)
(* *)
(**************************************************************************)
module type Common = sig
type t
include Identifiable.S with type t := t
val to_string : t -> string
val zero : t
val one : t
val minus_one : t
val neg : t -> t
val add : t -> t -> t
val sub : t -> t -> t
val mul : t -> t -> t
val div : t -> t -> t
val shift_left : t -> int -> t
val shift_right : t -> int -> t
val shift_right_logical : t -> int -> t
val min: t -> t -> t
val max: t -> t -> t
val get_least_significant_16_bits_then_byte_swap : t -> t
module Pair : sig
type nonrec t = t * t
include Identifiable.S with type t := t
end
val cross_product : Set.t -> Set.t -> Pair.Set.t
end
module type S = sig
include Common
val max_int : t
val min_int : t
val rem : t -> t -> t
val succ : t -> t
val pred : t -> t
val abs : t -> t
val logand : t -> t -> t
val logor : t -> t -> t
val logxor : t -> t -> t
val lognot : t -> t
val swap_byte_endianness : t -> t
val of_int_exn : int -> t
val of_int : int -> t
val of_int32 : int32 -> t
val of_int64 : int64 -> t
val of_float : float -> t
val of_string : string -> t
val to_int : t -> int
val to_int32 : t -> int32
val to_int64 : t -> int64
val to_float : t -> float
val to_string : t -> string
val unsigned_div : t -> t -> t
val unsigned_rem : t -> t -> t
val unsigned_compare : t -> t -> int
end
module type OCaml = sig
include Common
type targetint
val min_value : t
val max_value : t
val max_string_length : t
val ten : t
val hex_ff : t
val and_ : t -> t -> t
val or_ : t -> t -> t
val xor : t -> t -> t
val mod_ : t -> t -> t
val (<=) : t -> t -> bool
val (<) : t -> t -> bool
val bottom_byte_to_int : t -> int
val of_int_option : int -> t option
val of_char : char -> t
val of_int : int -> t (* CR mshinwell: clarify semantics *)
val of_int32 : int32 -> t
val of_int64 : int64 -> t
val of_targetint : targetint -> t
val of_float : float -> t
val to_float : t -> float
val to_int : t -> int
val to_int_exn : t -> int
val to_int_option : t -> int option
val to_int32 : t -> int32
val to_int64 : t -> int64
val to_targetint : t -> targetint
end