UNPKG

@lazy-random/df-array

Version:
79 lines (78 loc) 3.62 kB
!function(e, t) { "object" == typeof exports && "undefined" != typeof module ? t(exports, require("@lazy-random/expect"), require("@lazy-random/util-distributions"), require("@lazy-random/array-algorithm"), require("@lazy-random/df-uniform"), require("@lazy-random/shared-lib")) : "function" == typeof define && define.amd ? define([ "exports", "@lazy-random/expect", "@lazy-random/util-distributions", "@lazy-random/array-algorithm", "@lazy-random/df-uniform", "@lazy-random/shared-lib" ], t) : t((e = "undefined" != typeof globalThis ? globalThis : e || self).LazyRandomDfArray = {}, e.expect, e.utilDistributions, e.arrayAlgorithm, e.dfUniform, e.sharedLib); }(this, (function(e, t, r, n, i, a) { "use strict"; function _handleStartEnd(e, r = 0, n, i) { var a; const l = e.length, d = !i; return r = Math.max(Math.floor(r), 0), null != n && (n = Math.floor(n), d && t.expect(n).integer.gt(r + 1, `END(${n}) should greater than START(${r}+1)`).gt(0)), n = Math.min(Math.max(0, null !== (a = n) && void 0 !== a ? a : l), l), d && t.expect(n, `END(${n})`).integer.gte(0).lte(l), d && t.expect(r, `START(${r})`).integer.gte(0).lt(n), { start: r, end: n, len: l }; } function dfArrayIndexOne(e, t, n = 0, i) { return ({start: n, end: i} = _handleStartEnd(t, n, i)), n === i - 1 ? () => n : () => r.int(e, n, i); } function dfArrayShuffle(e, t, i) { const randIndex = t => r.randIndex(e, t); if (!i) { let e; return e = Buffer.isBuffer(t) ? e => Buffer.from(e) : e => e.slice(), () => n.swapAlgorithm2(e(t), !0, randIndex); } return () => n.swapAlgorithm2(t, !0, randIndex); } dfArrayShuffle.memoizable = !1, e.dfArrayFill = function dfArrayFill(e, r, n, l) { let d; { let t = a.isUnset(r), f = a.isUnset(n); d = f && t ? i.dfUniformByte(e) : l ? i.dfUniformFloat(e, r, n) : i.dfUniformInt(e, r, n), r = void 0, n = void 0; } return t.expect(d).function(), e => { let t = e.length; for (;t--; ) e[t] = d(); return e; }; }, e.dfArrayIndex = function dfArrayIndex(e, r, n = 1, i = 0, a) { t.expect(n, "size").integer.gt(0), t.expect(r.length, "arr.length").integer.gt(0); const l = dfArrayIndexOne(e, r, i, a); let d; ({start: i, end: a, len: d} = _handleStartEnd(r, i, a, !0)); let f = Math.max(Math.min(a - i, d, n), 0); return t.expect(f, `size_runtime(${f})`).lte(n).gt(0), n = f, () => { f = n; let e, t = []; do { let r = l(); e === r || t.includes(r) || (t.push(e = r), --f); } while (f > 0); return t; }; }, e.dfArrayIndexOne = dfArrayIndexOne, e.dfArrayShuffle = dfArrayShuffle, e.dfArrayUnique = function dfArrayUnique(e, n, i, a, l, d) { let f = n.slice(); i = Math.min(i || f.length, f.length), l = l || (t => r.randIndex(e, t)), a = !!a, t.expect(i, "limit").integer.gt(0), t.expect(l, "fnRandIndex").function(); let o, u = i; const s = function _fnClone(e) { f = e.slice(), u = i, o = f.length; }; return () => { if (o = f.length, 0 === o || 0 == u--) { let e = a; if (d) { let t = d(n, i, a, l); Array.isArray(t) && t.length > 0 ? (s(t), e = null) : 1 == t ? e = !0 : void 0 !== t && (e = !1); } if (e) s(n); else if (null !== e) throw new RangeError(`can't call arrayUnique > ${i} times`); } const e = l(o); return f.splice(e, 1)[0]; }; }, Object.defineProperty(e, "__esModule", { value: !0 }); })); //# sourceMappingURL=index.umd.production.min.cjs.map