forked from rescript-lang/rescript
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathint64.js
80 lines (67 loc) · 1.35 KB
/
int64.js
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
'use strict';
var Caml_int64 = require("./caml_int64.js");
var Caml_format = require("./caml_format.js");
function succ(n) {
return Caml_int64.add(n, /* int64 */[
/* hi */0,
/* lo */1
]);
}
function pred(n) {
return Caml_int64.sub(n, /* int64 */[
/* hi */0,
/* lo */1
]);
}
function abs(n) {
if (Caml_int64.ge(n, /* int64 */[
/* hi */0,
/* lo */0
])) {
return n;
} else {
return Caml_int64.neg(n);
}
}
function lognot(n) {
return Caml_int64.xor(n, /* int64 */[
/* hi */-1,
/* lo */4294967295
]);
}
function to_string(n) {
return Caml_format.caml_int64_format("%d", n);
}
var compare = Caml_int64.compare;
var zero = /* int64 */[
/* hi */0,
/* lo */0
];
var one = /* int64 */[
/* hi */0,
/* lo */1
];
var minus_one = /* int64 */[
/* hi */-1,
/* lo */4294967295
];
var max_int = /* int64 */[
/* hi */2147483647,
/* lo */4294967295
];
var min_int = /* int64 */[
/* hi */-2147483648,
/* lo */0
];
exports.zero = zero;
exports.one = one;
exports.minus_one = minus_one;
exports.succ = succ;
exports.pred = pred;
exports.abs = abs;
exports.max_int = max_int;
exports.min_int = min_int;
exports.lognot = lognot;
exports.to_string = to_string;
exports.compare = compare;
/* No side effect */