time-to-botec/squiggle/node_modules/@rescript/std/lib/js/belt_SetInt.js
NunoSempere b6addc7f05 feat: add the node modules
Necessary in order to clearly see the squiggle hotwiring.
2022-12-03 12:44:49 +00:00

358 lines
7.1 KiB
JavaScript

'use strict';
var Belt_internalAVLset = require("./belt_internalAVLset.js");
var Belt_internalSetInt = require("./belt_internalSetInt.js");
function add(t, x) {
if (t === undefined) {
return Belt_internalAVLset.singleton(x);
}
var v = t.v;
if (x === v) {
return t;
}
var l = t.l;
var r = t.r;
if (x < v) {
var ll = add(l, x);
if (ll === l) {
return t;
} else {
return Belt_internalAVLset.bal(ll, v, r);
}
}
var rr = add(r, x);
if (rr === r) {
return t;
} else {
return Belt_internalAVLset.bal(l, v, rr);
}
}
function mergeMany(h, arr) {
var len = arr.length;
var v = h;
for(var i = 0; i < len; ++i){
var key = arr[i];
v = add(v, key);
}
return v;
}
function remove(t, x) {
if (t === undefined) {
return t;
}
var v = t.v;
var l = t.l;
var r = t.r;
if (x === v) {
if (l === undefined) {
return r;
}
if (r === undefined) {
return l;
}
var v$1 = {
contents: r.v
};
var r$1 = Belt_internalAVLset.removeMinAuxWithRef(r, v$1);
return Belt_internalAVLset.bal(l, v$1.contents, r$1);
}
if (x < v) {
var ll = remove(l, x);
if (ll === l) {
return t;
} else {
return Belt_internalAVLset.bal(ll, v, r);
}
}
var rr = remove(r, x);
if (rr === r) {
return t;
} else {
return Belt_internalAVLset.bal(l, v, rr);
}
}
function removeMany(h, arr) {
var len = arr.length;
var v = h;
for(var i = 0; i < len; ++i){
var key = arr[i];
v = remove(v, key);
}
return v;
}
function splitAuxNoPivot(n, x) {
var v = n.v;
var l = n.l;
var r = n.r;
if (x === v) {
return [
l,
r
];
}
if (x < v) {
if (l === undefined) {
return [
undefined,
n
];
}
var match = splitAuxNoPivot(l, x);
return [
match[0],
Belt_internalAVLset.joinShared(match[1], v, r)
];
}
if (r === undefined) {
return [
n,
undefined
];
}
var match$1 = splitAuxNoPivot(r, x);
return [
Belt_internalAVLset.joinShared(l, v, match$1[0]),
match$1[1]
];
}
function splitAuxPivot(n, x, pres) {
var v = n.v;
var l = n.l;
var r = n.r;
if (x === v) {
pres.contents = true;
return [
l,
r
];
}
if (x < v) {
if (l === undefined) {
return [
undefined,
n
];
}
var match = splitAuxPivot(l, x, pres);
return [
match[0],
Belt_internalAVLset.joinShared(match[1], v, r)
];
}
if (r === undefined) {
return [
n,
undefined
];
}
var match$1 = splitAuxPivot(r, x, pres);
return [
Belt_internalAVLset.joinShared(l, v, match$1[0]),
match$1[1]
];
}
function split(t, x) {
if (t === undefined) {
return [
[
undefined,
undefined
],
false
];
}
var pres = {
contents: false
};
var v = splitAuxPivot(t, x, pres);
return [
v,
pres.contents
];
}
function union(s1, s2) {
if (s1 === undefined) {
return s2;
}
if (s2 === undefined) {
return s1;
}
var h1 = s1.h;
var h2 = s2.h;
if (h1 >= h2) {
if (h2 === 1) {
return add(s1, s2.v);
}
var v1 = s1.v;
var l1 = s1.l;
var r1 = s1.r;
var match = splitAuxNoPivot(s2, v1);
return Belt_internalAVLset.joinShared(union(l1, match[0]), v1, union(r1, match[1]));
}
if (h1 === 1) {
return add(s2, s1.v);
}
var v2 = s2.v;
var l2 = s2.l;
var r2 = s2.r;
var match$1 = splitAuxNoPivot(s1, v2);
return Belt_internalAVLset.joinShared(union(match$1[0], l2), v2, union(match$1[1], r2));
}
function intersect(s1, s2) {
if (s1 === undefined) {
return ;
}
if (s2 === undefined) {
return ;
}
var v1 = s1.v;
var l1 = s1.l;
var r1 = s1.r;
var pres = {
contents: false
};
var match = splitAuxPivot(s2, v1, pres);
var ll = intersect(l1, match[0]);
var rr = intersect(r1, match[1]);
if (pres.contents) {
return Belt_internalAVLset.joinShared(ll, v1, rr);
} else {
return Belt_internalAVLset.concatShared(ll, rr);
}
}
function diff(s1, s2) {
if (s1 === undefined) {
return s1;
}
if (s2 === undefined) {
return s1;
}
var v1 = s1.v;
var l1 = s1.l;
var r1 = s1.r;
var pres = {
contents: false
};
var match = splitAuxPivot(s2, v1, pres);
var ll = diff(l1, match[0]);
var rr = diff(r1, match[1]);
if (pres.contents) {
return Belt_internalAVLset.concatShared(ll, rr);
} else {
return Belt_internalAVLset.joinShared(ll, v1, rr);
}
}
var empty;
var fromArray = Belt_internalSetInt.fromArray;
var fromSortedArrayUnsafe = Belt_internalAVLset.fromSortedArrayUnsafe;
var isEmpty = Belt_internalAVLset.isEmpty;
var has = Belt_internalSetInt.has;
var subset = Belt_internalSetInt.subset;
var cmp = Belt_internalSetInt.cmp;
var eq = Belt_internalSetInt.eq;
var forEachU = Belt_internalAVLset.forEachU;
var forEach = Belt_internalAVLset.forEach;
var reduceU = Belt_internalAVLset.reduceU;
var reduce = Belt_internalAVLset.reduce;
var everyU = Belt_internalAVLset.everyU;
var every = Belt_internalAVLset.every;
var someU = Belt_internalAVLset.someU;
var some = Belt_internalAVLset.some;
var keepU = Belt_internalAVLset.keepSharedU;
var keep = Belt_internalAVLset.keepShared;
var partitionU = Belt_internalAVLset.partitionSharedU;
var partition = Belt_internalAVLset.partitionShared;
var size = Belt_internalAVLset.size;
var toList = Belt_internalAVLset.toList;
var toArray = Belt_internalAVLset.toArray;
var minimum = Belt_internalAVLset.minimum;
var minUndefined = Belt_internalAVLset.minUndefined;
var maximum = Belt_internalAVLset.maximum;
var maxUndefined = Belt_internalAVLset.maxUndefined;
var get = Belt_internalSetInt.get;
var getUndefined = Belt_internalSetInt.getUndefined;
var getExn = Belt_internalSetInt.getExn;
var checkInvariantInternal = Belt_internalAVLset.checkInvariantInternal;
exports.empty = empty;
exports.fromArray = fromArray;
exports.fromSortedArrayUnsafe = fromSortedArrayUnsafe;
exports.isEmpty = isEmpty;
exports.has = has;
exports.add = add;
exports.mergeMany = mergeMany;
exports.remove = remove;
exports.removeMany = removeMany;
exports.union = union;
exports.intersect = intersect;
exports.diff = diff;
exports.subset = subset;
exports.cmp = cmp;
exports.eq = eq;
exports.forEachU = forEachU;
exports.forEach = forEach;
exports.reduceU = reduceU;
exports.reduce = reduce;
exports.everyU = everyU;
exports.every = every;
exports.someU = someU;
exports.some = some;
exports.keepU = keepU;
exports.keep = keep;
exports.partitionU = partitionU;
exports.partition = partition;
exports.size = size;
exports.toList = toList;
exports.toArray = toArray;
exports.minimum = minimum;
exports.minUndefined = minUndefined;
exports.maximum = maximum;
exports.maxUndefined = maxUndefined;
exports.get = get;
exports.getUndefined = getUndefined;
exports.getExn = getExn;
exports.split = split;
exports.checkInvariantInternal = checkInvariantInternal;
/* No side effect */