data-structure-typed 2.5.1 → 2.5.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +3 -1
- package/README.md +75 -17
- package/dist/cjs/binary-tree.cjs +2723 -139
- package/dist/cjs/graph.cjs +192 -6
- package/dist/cjs/hash.cjs +63 -15
- package/dist/cjs/heap.cjs +93 -31
- package/dist/cjs/index.cjs +3514 -379
- package/dist/cjs/linked-list.cjs +237 -31
- package/dist/cjs/matrix.cjs +47 -9
- package/dist/cjs/priority-queue.cjs +92 -30
- package/dist/cjs/queue.cjs +176 -2
- package/dist/cjs/stack.cjs +48 -2
- package/dist/cjs/trie.cjs +78 -28
- package/dist/cjs-legacy/binary-tree.cjs +2725 -136
- package/dist/cjs-legacy/graph.cjs +192 -6
- package/dist/cjs-legacy/hash.cjs +63 -15
- package/dist/cjs-legacy/heap.cjs +93 -31
- package/dist/cjs-legacy/index.cjs +3389 -249
- package/dist/cjs-legacy/linked-list.cjs +237 -31
- package/dist/cjs-legacy/matrix.cjs +47 -9
- package/dist/cjs-legacy/priority-queue.cjs +92 -30
- package/dist/cjs-legacy/queue.cjs +176 -2
- package/dist/cjs-legacy/stack.cjs +48 -2
- package/dist/cjs-legacy/trie.cjs +78 -28
- package/dist/esm/binary-tree.mjs +2723 -139
- package/dist/esm/graph.mjs +192 -6
- package/dist/esm/hash.mjs +63 -15
- package/dist/esm/heap.mjs +93 -31
- package/dist/esm/index.mjs +3514 -380
- package/dist/esm/linked-list.mjs +237 -31
- package/dist/esm/matrix.mjs +47 -9
- package/dist/esm/priority-queue.mjs +92 -30
- package/dist/esm/queue.mjs +176 -2
- package/dist/esm/stack.mjs +48 -2
- package/dist/esm/trie.mjs +78 -28
- package/dist/esm-legacy/binary-tree.mjs +2725 -136
- package/dist/esm-legacy/graph.mjs +192 -6
- package/dist/esm-legacy/hash.mjs +63 -15
- package/dist/esm-legacy/heap.mjs +93 -31
- package/dist/esm-legacy/index.mjs +3389 -250
- package/dist/esm-legacy/linked-list.mjs +237 -31
- package/dist/esm-legacy/matrix.mjs +47 -9
- package/dist/esm-legacy/priority-queue.mjs +92 -30
- package/dist/esm-legacy/queue.mjs +176 -2
- package/dist/esm-legacy/stack.mjs +48 -2
- package/dist/esm-legacy/trie.mjs +78 -28
- package/dist/types/common/error.d.ts +9 -0
- package/dist/types/common/index.d.ts +1 -1
- package/dist/types/data-structures/binary-tree/avl-tree.d.ts +48 -0
- package/dist/types/data-structures/binary-tree/binary-indexed-tree.d.ts +56 -0
- package/dist/types/data-structures/binary-tree/binary-tree.d.ts +102 -2
- package/dist/types/data-structures/binary-tree/bst.d.ts +195 -0
- package/dist/types/data-structures/binary-tree/red-black-tree.d.ts +76 -0
- package/dist/types/data-structures/binary-tree/segment-tree.d.ts +24 -0
- package/dist/types/data-structures/binary-tree/tree-map.d.ts +528 -0
- package/dist/types/data-structures/binary-tree/tree-multi-map.d.ts +531 -6
- package/dist/types/data-structures/binary-tree/tree-multi-set.d.ts +435 -6
- package/dist/types/data-structures/binary-tree/tree-set.d.ts +505 -0
- package/dist/types/data-structures/graph/directed-graph.d.ts +40 -0
- package/dist/types/data-structures/graph/undirected-graph.d.ts +36 -0
- package/dist/types/data-structures/hash/hash-map.d.ts +44 -0
- package/dist/types/data-structures/heap/heap.d.ts +56 -0
- package/dist/types/data-structures/linked-list/doubly-linked-list.d.ts +68 -0
- package/dist/types/data-structures/linked-list/singly-linked-list.d.ts +60 -0
- package/dist/types/data-structures/linked-list/skip-linked-list.d.ts +72 -0
- package/dist/types/data-structures/matrix/matrix.d.ts +32 -0
- package/dist/types/data-structures/queue/deque.d.ts +60 -0
- package/dist/types/data-structures/queue/queue.d.ts +48 -0
- package/dist/types/data-structures/stack/stack.d.ts +40 -0
- package/dist/types/data-structures/trie/trie.d.ts +48 -0
- package/dist/types/types/data-structures/binary-tree/bst.d.ts +1 -0
- package/dist/types/types/data-structures/binary-tree/tree-map.d.ts +5 -0
- package/dist/types/types/data-structures/binary-tree/tree-multi-set.d.ts +4 -0
- package/dist/types/types/data-structures/binary-tree/tree-set.d.ts +4 -0
- package/dist/umd/data-structure-typed.js +3404 -265
- package/dist/umd/data-structure-typed.min.js +5 -5
- package/docs-site-docusaurus/docs/api/classes/AVLTree.md +650 -136
- package/docs-site-docusaurus/docs/api/classes/AVLTreeNode.md +11 -11
- package/docs-site-docusaurus/docs/api/classes/AbstractGraph.md +71 -71
- package/docs-site-docusaurus/docs/api/classes/BST.md +591 -129
- package/docs-site-docusaurus/docs/api/classes/BSTNode.md +13 -13
- package/docs-site-docusaurus/docs/api/classes/BinaryIndexedTree.md +15 -15
- package/docs-site-docusaurus/docs/api/classes/BinaryTree.md +107 -107
- package/docs-site-docusaurus/docs/api/classes/BinaryTreeNode.md +13 -13
- package/docs-site-docusaurus/docs/api/classes/Deque.md +82 -82
- package/docs-site-docusaurus/docs/api/classes/DirectedGraph.md +82 -82
- package/docs-site-docusaurus/docs/api/classes/DoublyLinkedList.md +74 -74
- package/docs-site-docusaurus/docs/api/classes/DoublyLinkedListNode.md +8 -8
- package/docs-site-docusaurus/docs/api/classes/FibonacciHeap.md +9 -9
- package/docs-site-docusaurus/docs/api/classes/FibonacciHeapNode.md +1 -1
- package/docs-site-docusaurus/docs/api/classes/HashMap.md +47 -47
- package/docs-site-docusaurus/docs/api/classes/Heap.md +45 -45
- package/docs-site-docusaurus/docs/api/classes/IterableElementBase.md +25 -25
- package/docs-site-docusaurus/docs/api/classes/IterableEntryBase.md +33 -33
- package/docs-site-docusaurus/docs/api/classes/LinearBase.md +50 -50
- package/docs-site-docusaurus/docs/api/classes/LinearLinkedBase.md +55 -55
- package/docs-site-docusaurus/docs/api/classes/LinkedHashMap.md +49 -49
- package/docs-site-docusaurus/docs/api/classes/LinkedListNode.md +6 -6
- package/docs-site-docusaurus/docs/api/classes/LinkedListQueue.md +78 -78
- package/docs-site-docusaurus/docs/api/classes/MapGraph.md +82 -82
- package/docs-site-docusaurus/docs/api/classes/Matrix.md +31 -31
- package/docs-site-docusaurus/docs/api/classes/MaxHeap.md +45 -45
- package/docs-site-docusaurus/docs/api/classes/MaxPriorityQueue.md +45 -45
- package/docs-site-docusaurus/docs/api/classes/MinHeap.md +45 -45
- package/docs-site-docusaurus/docs/api/classes/MinPriorityQueue.md +45 -45
- package/docs-site-docusaurus/docs/api/classes/Navigator.md +5 -5
- package/docs-site-docusaurus/docs/api/classes/PriorityQueue.md +44 -44
- package/docs-site-docusaurus/docs/api/classes/Queue.md +60 -60
- package/docs-site-docusaurus/docs/api/classes/RedBlackTree.md +660 -146
- package/docs-site-docusaurus/docs/api/classes/SegmentTree.md +10 -10
- package/docs-site-docusaurus/docs/api/classes/SinglyLinkedList.md +78 -78
- package/docs-site-docusaurus/docs/api/classes/SinglyLinkedListNode.md +6 -6
- package/docs-site-docusaurus/docs/api/classes/SkipList.md +44 -44
- package/docs-site-docusaurus/docs/api/classes/Stack.md +39 -39
- package/docs-site-docusaurus/docs/api/classes/TreeMap.md +165 -33
- package/docs-site-docusaurus/docs/api/classes/TreeMultiMap.md +162 -46
- package/docs-site-docusaurus/docs/api/classes/TreeSet.md +161 -32
- package/docs-site-docusaurus/docs/api/classes/Trie.md +47 -47
- package/docs-site-docusaurus/docs/api/classes/TrieNode.md +8 -8
- package/docs-site-docusaurus/docs/api/classes/UndirectedGraph.md +81 -81
- package/docs-site-docusaurus/docs/guide/architecture.md +2 -0
- package/docs-site-docusaurus/docs/guide/concepts.md +32 -1
- package/docs-site-docusaurus/docs/guide/faq.md +180 -0
- package/docs-site-docusaurus/docs/guide/guides.md +40 -54
- package/docs-site-docusaurus/docs/guide/installation.md +2 -0
- package/docs-site-docusaurus/docs/guide/integrations.md +2 -0
- package/docs-site-docusaurus/docs/guide/overview.md +7 -0
- package/docs-site-docusaurus/docs/guide/performance.md +2 -0
- package/docs-site-docusaurus/docs/guide/quick-start.md +31 -0
- package/docs-site-docusaurus/docs/guide/use-cases/_category_.json +6 -0
- package/docs-site-docusaurus/docs/guide/use-cases/array-sort-alternative.md +158 -0
- package/docs-site-docusaurus/docs/guide/use-cases/heap-vs-sorting.md +92 -0
- package/docs-site-docusaurus/docs/guide/use-cases/map-vs-treemap.md +151 -0
- package/docs-site-docusaurus/docs/guide/use-cases/priority-queue-typescript.md +113 -0
- package/docs-site-docusaurus/docs/guide/use-cases/treemap-javascript.md +151 -0
- package/docs-site-docusaurus/docusaurus.config.ts +1 -1
- package/docs-site-docusaurus/src/pages/index.tsx +51 -2
- package/docs-site-docusaurus/static/llms.txt +37 -0
- package/llms.txt +37 -0
- package/package.json +64 -56
- package/src/common/error.ts +19 -1
- package/src/common/index.ts +1 -1
- package/src/data-structures/base/iterable-element-base.ts +3 -2
- package/src/data-structures/binary-tree/avl-tree.ts +47 -0
- package/src/data-structures/binary-tree/binary-indexed-tree.ts +46 -4
- package/src/data-structures/binary-tree/binary-tree.ts +79 -4
- package/src/data-structures/binary-tree/bst.ts +441 -6
- package/src/data-structures/binary-tree/red-black-tree.ts +73 -0
- package/src/data-structures/binary-tree/segment-tree.ts +18 -0
- package/src/data-structures/binary-tree/tree-map.ts +434 -9
- package/src/data-structures/binary-tree/tree-multi-map.ts +426 -5
- package/src/data-structures/binary-tree/tree-multi-set.ts +350 -6
- package/src/data-structures/binary-tree/tree-set.ts +410 -8
- package/src/data-structures/graph/abstract-graph.ts +2 -2
- package/src/data-structures/graph/directed-graph.ts +30 -0
- package/src/data-structures/graph/undirected-graph.ts +27 -0
- package/src/data-structures/hash/hash-map.ts +35 -4
- package/src/data-structures/heap/heap.ts +46 -4
- package/src/data-structures/heap/max-heap.ts +2 -2
- package/src/data-structures/linked-list/doubly-linked-list.ts +51 -0
- package/src/data-structures/linked-list/singly-linked-list.ts +45 -0
- package/src/data-structures/linked-list/skip-linked-list.ts +59 -5
- package/src/data-structures/matrix/matrix.ts +33 -9
- package/src/data-structures/priority-queue/max-priority-queue.ts +2 -2
- package/src/data-structures/queue/deque.ts +45 -0
- package/src/data-structures/queue/queue.ts +36 -0
- package/src/data-structures/stack/stack.ts +30 -0
- package/src/data-structures/trie/trie.ts +38 -2
- package/src/types/data-structures/binary-tree/bst.ts +1 -0
- package/src/types/data-structures/binary-tree/tree-map.ts +6 -0
- package/src/types/data-structures/binary-tree/tree-multi-set.ts +5 -0
- package/src/types/data-structures/binary-tree/tree-set.ts +5 -0
package/dist/cjs/matrix.cjs
CHANGED
|
@@ -4,6 +4,10 @@ var __defProp = Object.defineProperty;
|
|
|
4
4
|
var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
|
|
5
5
|
|
|
6
6
|
// src/common/error.ts
|
|
7
|
+
function raise(ErrorClass, message) {
|
|
8
|
+
throw new ErrorClass(message);
|
|
9
|
+
}
|
|
10
|
+
__name(raise, "raise");
|
|
7
11
|
var ERR = {
|
|
8
12
|
// Range / index
|
|
9
13
|
indexOutOfRange: /* @__PURE__ */ __name((index, min, max, ctx) => `${ctx ? ctx + ": " : ""}Index ${index} is out of range [${min}, ${max}].`, "indexOutOfRange"),
|
|
@@ -25,7 +29,9 @@ var ERR = {
|
|
|
25
29
|
matrixSingular: /* @__PURE__ */ __name(() => "Matrix: Singular matrix, inverse does not exist.", "matrixSingular"),
|
|
26
30
|
matrixNotSquare: /* @__PURE__ */ __name(() => "Matrix: Must be square for inversion.", "matrixNotSquare"),
|
|
27
31
|
matrixNotRectangular: /* @__PURE__ */ __name(() => "Matrix: Must be rectangular for transposition.", "matrixNotRectangular"),
|
|
28
|
-
matrixRowMismatch: /* @__PURE__ */ __name((expected, got) => `Matrix: Expected row length ${expected}, but got ${got}.`, "matrixRowMismatch")
|
|
32
|
+
matrixRowMismatch: /* @__PURE__ */ __name((expected, got) => `Matrix: Expected row length ${expected}, but got ${got}.`, "matrixRowMismatch"),
|
|
33
|
+
// Order statistic
|
|
34
|
+
orderStatisticNotEnabled: /* @__PURE__ */ __name((method, ctx) => `${ctx ? ctx + ": " : ""}${method}() requires enableOrderStatistic: true.`, "orderStatisticNotEnabled")
|
|
29
35
|
};
|
|
30
36
|
|
|
31
37
|
// src/data-structures/matrix/matrix.ts
|
|
@@ -142,6 +148,10 @@ var Matrix = class _Matrix {
|
|
|
142
148
|
|
|
143
149
|
|
|
144
150
|
|
|
151
|
+
|
|
152
|
+
|
|
153
|
+
|
|
154
|
+
|
|
145
155
|
|
|
146
156
|
|
|
147
157
|
|
|
@@ -206,6 +216,10 @@ var Matrix = class _Matrix {
|
|
|
206
216
|
|
|
207
217
|
|
|
208
218
|
|
|
219
|
+
|
|
220
|
+
|
|
221
|
+
|
|
222
|
+
|
|
209
223
|
|
|
210
224
|
|
|
211
225
|
|
|
@@ -266,6 +280,10 @@ var Matrix = class _Matrix {
|
|
|
266
280
|
|
|
267
281
|
|
|
268
282
|
|
|
283
|
+
|
|
284
|
+
|
|
285
|
+
|
|
286
|
+
|
|
269
287
|
|
|
270
288
|
|
|
271
289
|
|
|
@@ -296,7 +314,7 @@ var Matrix = class _Matrix {
|
|
|
296
314
|
*/
|
|
297
315
|
add(matrix) {
|
|
298
316
|
if (!this.isMatchForCalculate(matrix)) {
|
|
299
|
-
|
|
317
|
+
raise(Error, ERR.matrixDimensionMismatch("addition"));
|
|
300
318
|
}
|
|
301
319
|
const resultData = [];
|
|
302
320
|
for (let i = 0; i < this.rows; i++) {
|
|
@@ -348,6 +366,10 @@ var Matrix = class _Matrix {
|
|
|
348
366
|
|
|
349
367
|
|
|
350
368
|
|
|
369
|
+
|
|
370
|
+
|
|
371
|
+
|
|
372
|
+
|
|
351
373
|
|
|
352
374
|
|
|
353
375
|
|
|
@@ -362,7 +384,7 @@ var Matrix = class _Matrix {
|
|
|
362
384
|
*/
|
|
363
385
|
subtract(matrix) {
|
|
364
386
|
if (!this.isMatchForCalculate(matrix)) {
|
|
365
|
-
|
|
387
|
+
raise(Error, ERR.matrixDimensionMismatch("subtraction"));
|
|
366
388
|
}
|
|
367
389
|
const resultData = [];
|
|
368
390
|
for (let i = 0; i < this.rows; i++) {
|
|
@@ -413,6 +435,10 @@ var Matrix = class _Matrix {
|
|
|
413
435
|
|
|
414
436
|
|
|
415
437
|
|
|
438
|
+
|
|
439
|
+
|
|
440
|
+
|
|
441
|
+
|
|
416
442
|
|
|
417
443
|
|
|
418
444
|
|
|
@@ -443,7 +469,7 @@ var Matrix = class _Matrix {
|
|
|
443
469
|
*/
|
|
444
470
|
multiply(matrix) {
|
|
445
471
|
if (this.cols !== matrix.rows) {
|
|
446
|
-
|
|
472
|
+
raise(Error, ERR.matrixDimensionMismatch("multiplication (A.cols must equal B.rows)"));
|
|
447
473
|
}
|
|
448
474
|
const resultData = [];
|
|
449
475
|
for (let i = 0; i < this.rows; i++) {
|
|
@@ -500,6 +526,10 @@ var Matrix = class _Matrix {
|
|
|
500
526
|
|
|
501
527
|
|
|
502
528
|
|
|
529
|
+
|
|
530
|
+
|
|
531
|
+
|
|
532
|
+
|
|
503
533
|
|
|
504
534
|
|
|
505
535
|
|
|
@@ -527,7 +557,7 @@ var Matrix = class _Matrix {
|
|
|
527
557
|
*/
|
|
528
558
|
transpose() {
|
|
529
559
|
if (this.data.some((row) => row.length !== this.cols)) {
|
|
530
|
-
|
|
560
|
+
raise(Error, ERR.matrixNotRectangular());
|
|
531
561
|
}
|
|
532
562
|
const resultData = [];
|
|
533
563
|
for (let j = 0; j < this.cols; j++) {
|
|
@@ -574,6 +604,10 @@ var Matrix = class _Matrix {
|
|
|
574
604
|
|
|
575
605
|
|
|
576
606
|
|
|
607
|
+
|
|
608
|
+
|
|
609
|
+
|
|
610
|
+
|
|
577
611
|
|
|
578
612
|
|
|
579
613
|
|
|
@@ -593,7 +627,7 @@ var Matrix = class _Matrix {
|
|
|
593
627
|
*/
|
|
594
628
|
inverse() {
|
|
595
629
|
if (this.rows !== this.cols) {
|
|
596
|
-
|
|
630
|
+
raise(Error, ERR.matrixNotSquare());
|
|
597
631
|
}
|
|
598
632
|
const augmentedMatrixData = [];
|
|
599
633
|
for (let i = 0; i < this.rows; i++) {
|
|
@@ -615,12 +649,12 @@ var Matrix = class _Matrix {
|
|
|
615
649
|
pivotRow++;
|
|
616
650
|
}
|
|
617
651
|
if (pivotRow === this.rows) {
|
|
618
|
-
|
|
652
|
+
raise(Error, ERR.matrixSingular());
|
|
619
653
|
}
|
|
620
654
|
augmentedMatrix._swapRows(i, pivotRow);
|
|
621
655
|
const pivotElement = augmentedMatrix.get(i, i) ?? 1;
|
|
622
656
|
if (pivotElement === 0) {
|
|
623
|
-
|
|
657
|
+
raise(Error, ERR.matrixSingular());
|
|
624
658
|
}
|
|
625
659
|
augmentedMatrix._scaleRow(i, 1 / pivotElement);
|
|
626
660
|
for (let j = 0; j < this.rows; j++) {
|
|
@@ -673,6 +707,10 @@ var Matrix = class _Matrix {
|
|
|
673
707
|
|
|
674
708
|
|
|
675
709
|
|
|
710
|
+
|
|
711
|
+
|
|
712
|
+
|
|
713
|
+
|
|
676
714
|
|
|
677
715
|
|
|
678
716
|
|
|
@@ -687,7 +725,7 @@ var Matrix = class _Matrix {
|
|
|
687
725
|
*/
|
|
688
726
|
dot(matrix) {
|
|
689
727
|
if (this.cols !== matrix.rows) {
|
|
690
|
-
|
|
728
|
+
raise(Error, ERR.matrixDimensionMismatch("dot product (A.cols must equal B.rows)"));
|
|
691
729
|
}
|
|
692
730
|
const resultData = [];
|
|
693
731
|
for (let i = 0; i < this.rows; i++) {
|
|
@@ -3,6 +3,37 @@
|
|
|
3
3
|
var __defProp = Object.defineProperty;
|
|
4
4
|
var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
|
|
5
5
|
|
|
6
|
+
// src/common/error.ts
|
|
7
|
+
function raise(ErrorClass, message) {
|
|
8
|
+
throw new ErrorClass(message);
|
|
9
|
+
}
|
|
10
|
+
__name(raise, "raise");
|
|
11
|
+
var ERR = {
|
|
12
|
+
// Range / index
|
|
13
|
+
indexOutOfRange: /* @__PURE__ */ __name((index, min, max, ctx) => `${ctx ? ctx + ": " : ""}Index ${index} is out of range [${min}, ${max}].`, "indexOutOfRange"),
|
|
14
|
+
invalidIndex: /* @__PURE__ */ __name((ctx) => `${ctx ? ctx + ": " : ""}Index must be an integer.`, "invalidIndex"),
|
|
15
|
+
// Type / argument
|
|
16
|
+
invalidArgument: /* @__PURE__ */ __name((reason, ctx) => `${ctx ? ctx + ": " : ""}${reason}`, "invalidArgument"),
|
|
17
|
+
comparatorRequired: /* @__PURE__ */ __name((ctx) => `${ctx ? ctx + ": " : ""}Comparator is required for non-number/non-string/non-Date keys.`, "comparatorRequired"),
|
|
18
|
+
invalidKey: /* @__PURE__ */ __name((reason, ctx) => `${ctx ? ctx + ": " : ""}${reason}`, "invalidKey"),
|
|
19
|
+
notAFunction: /* @__PURE__ */ __name((name, ctx) => `${ctx ? ctx + ": " : ""}${name} must be a function.`, "notAFunction"),
|
|
20
|
+
invalidEntry: /* @__PURE__ */ __name((ctx) => `${ctx ? ctx + ": " : ""}Each entry must be a [key, value] tuple.`, "invalidEntry"),
|
|
21
|
+
invalidNaN: /* @__PURE__ */ __name((ctx) => `${ctx ? ctx + ": " : ""}NaN is not a valid key.`, "invalidNaN"),
|
|
22
|
+
invalidDate: /* @__PURE__ */ __name((ctx) => `${ctx ? ctx + ": " : ""}Invalid Date key.`, "invalidDate"),
|
|
23
|
+
reduceEmpty: /* @__PURE__ */ __name((ctx) => `${ctx ? ctx + ": " : ""}Reduce of empty structure with no initial value.`, "reduceEmpty"),
|
|
24
|
+
callbackReturnType: /* @__PURE__ */ __name((expected, got, ctx) => `${ctx ? ctx + ": " : ""}Callback must return ${expected}; got ${got}.`, "callbackReturnType"),
|
|
25
|
+
// State / operation
|
|
26
|
+
invalidOperation: /* @__PURE__ */ __name((reason, ctx) => `${ctx ? ctx + ": " : ""}${reason}`, "invalidOperation"),
|
|
27
|
+
// Matrix
|
|
28
|
+
matrixDimensionMismatch: /* @__PURE__ */ __name((op) => `Matrix: Dimensions must be compatible for ${op}.`, "matrixDimensionMismatch"),
|
|
29
|
+
matrixSingular: /* @__PURE__ */ __name(() => "Matrix: Singular matrix, inverse does not exist.", "matrixSingular"),
|
|
30
|
+
matrixNotSquare: /* @__PURE__ */ __name(() => "Matrix: Must be square for inversion.", "matrixNotSquare"),
|
|
31
|
+
matrixNotRectangular: /* @__PURE__ */ __name(() => "Matrix: Must be rectangular for transposition.", "matrixNotRectangular"),
|
|
32
|
+
matrixRowMismatch: /* @__PURE__ */ __name((expected, got) => `Matrix: Expected row length ${expected}, but got ${got}.`, "matrixRowMismatch"),
|
|
33
|
+
// Order statistic
|
|
34
|
+
orderStatisticNotEnabled: /* @__PURE__ */ __name((method, ctx) => `${ctx ? ctx + ": " : ""}${method}() requires enableOrderStatistic: true.`, "orderStatisticNotEnabled")
|
|
35
|
+
};
|
|
36
|
+
|
|
6
37
|
// src/data-structures/base/iterable-element-base.ts
|
|
7
38
|
var IterableElementBase = class {
|
|
8
39
|
static {
|
|
@@ -21,7 +52,7 @@ var IterableElementBase = class {
|
|
|
21
52
|
if (options) {
|
|
22
53
|
const { toElementFn } = options;
|
|
23
54
|
if (typeof toElementFn === "function") this._toElementFn = toElementFn;
|
|
24
|
-
else if (toElementFn)
|
|
55
|
+
else if (toElementFn) raise(TypeError, "toElementFn must be a function type");
|
|
25
56
|
}
|
|
26
57
|
}
|
|
27
58
|
/**
|
|
@@ -184,7 +215,7 @@ var IterableElementBase = class {
|
|
|
184
215
|
acc = initialValue;
|
|
185
216
|
} else {
|
|
186
217
|
const first = iter.next();
|
|
187
|
-
if (first.done)
|
|
218
|
+
if (first.done) raise(TypeError, "Reduce of empty structure with no initial value");
|
|
188
219
|
acc = first.value;
|
|
189
220
|
index = 1;
|
|
190
221
|
}
|
|
@@ -226,31 +257,6 @@ var IterableElementBase = class {
|
|
|
226
257
|
}
|
|
227
258
|
};
|
|
228
259
|
|
|
229
|
-
// src/common/error.ts
|
|
230
|
-
var ERR = {
|
|
231
|
-
// Range / index
|
|
232
|
-
indexOutOfRange: /* @__PURE__ */ __name((index, min, max, ctx) => `${ctx ? ctx + ": " : ""}Index ${index} is out of range [${min}, ${max}].`, "indexOutOfRange"),
|
|
233
|
-
invalidIndex: /* @__PURE__ */ __name((ctx) => `${ctx ? ctx + ": " : ""}Index must be an integer.`, "invalidIndex"),
|
|
234
|
-
// Type / argument
|
|
235
|
-
invalidArgument: /* @__PURE__ */ __name((reason, ctx) => `${ctx ? ctx + ": " : ""}${reason}`, "invalidArgument"),
|
|
236
|
-
comparatorRequired: /* @__PURE__ */ __name((ctx) => `${ctx ? ctx + ": " : ""}Comparator is required for non-number/non-string/non-Date keys.`, "comparatorRequired"),
|
|
237
|
-
invalidKey: /* @__PURE__ */ __name((reason, ctx) => `${ctx ? ctx + ": " : ""}${reason}`, "invalidKey"),
|
|
238
|
-
notAFunction: /* @__PURE__ */ __name((name, ctx) => `${ctx ? ctx + ": " : ""}${name} must be a function.`, "notAFunction"),
|
|
239
|
-
invalidEntry: /* @__PURE__ */ __name((ctx) => `${ctx ? ctx + ": " : ""}Each entry must be a [key, value] tuple.`, "invalidEntry"),
|
|
240
|
-
invalidNaN: /* @__PURE__ */ __name((ctx) => `${ctx ? ctx + ": " : ""}NaN is not a valid key.`, "invalidNaN"),
|
|
241
|
-
invalidDate: /* @__PURE__ */ __name((ctx) => `${ctx ? ctx + ": " : ""}Invalid Date key.`, "invalidDate"),
|
|
242
|
-
reduceEmpty: /* @__PURE__ */ __name((ctx) => `${ctx ? ctx + ": " : ""}Reduce of empty structure with no initial value.`, "reduceEmpty"),
|
|
243
|
-
callbackReturnType: /* @__PURE__ */ __name((expected, got, ctx) => `${ctx ? ctx + ": " : ""}Callback must return ${expected}; got ${got}.`, "callbackReturnType"),
|
|
244
|
-
// State / operation
|
|
245
|
-
invalidOperation: /* @__PURE__ */ __name((reason, ctx) => `${ctx ? ctx + ": " : ""}${reason}`, "invalidOperation"),
|
|
246
|
-
// Matrix
|
|
247
|
-
matrixDimensionMismatch: /* @__PURE__ */ __name((op) => `Matrix: Dimensions must be compatible for ${op}.`, "matrixDimensionMismatch"),
|
|
248
|
-
matrixSingular: /* @__PURE__ */ __name(() => "Matrix: Singular matrix, inverse does not exist.", "matrixSingular"),
|
|
249
|
-
matrixNotSquare: /* @__PURE__ */ __name(() => "Matrix: Must be square for inversion.", "matrixNotSquare"),
|
|
250
|
-
matrixNotRectangular: /* @__PURE__ */ __name(() => "Matrix: Must be rectangular for transposition.", "matrixNotRectangular"),
|
|
251
|
-
matrixRowMismatch: /* @__PURE__ */ __name((expected, got) => `Matrix: Expected row length ${expected}, but got ${got}.`, "matrixRowMismatch")
|
|
252
|
-
};
|
|
253
|
-
|
|
254
260
|
// src/data-structures/heap/heap.ts
|
|
255
261
|
var Heap = class _Heap extends IterableElementBase {
|
|
256
262
|
static {
|
|
@@ -311,6 +317,10 @@ var Heap = class _Heap extends IterableElementBase {
|
|
|
311
317
|
|
|
312
318
|
|
|
313
319
|
|
|
320
|
+
|
|
321
|
+
|
|
322
|
+
|
|
323
|
+
|
|
314
324
|
|
|
315
325
|
|
|
316
326
|
|
|
@@ -393,6 +403,10 @@ var Heap = class _Heap extends IterableElementBase {
|
|
|
393
403
|
|
|
394
404
|
|
|
395
405
|
|
|
406
|
+
|
|
407
|
+
|
|
408
|
+
|
|
409
|
+
|
|
396
410
|
|
|
397
411
|
|
|
398
412
|
|
|
@@ -446,6 +460,10 @@ var Heap = class _Heap extends IterableElementBase {
|
|
|
446
460
|
|
|
447
461
|
|
|
448
462
|
|
|
463
|
+
|
|
464
|
+
|
|
465
|
+
|
|
466
|
+
|
|
449
467
|
|
|
450
468
|
|
|
451
469
|
|
|
@@ -501,6 +519,10 @@ var Heap = class _Heap extends IterableElementBase {
|
|
|
501
519
|
|
|
502
520
|
|
|
503
521
|
|
|
522
|
+
|
|
523
|
+
|
|
524
|
+
|
|
525
|
+
|
|
504
526
|
|
|
505
527
|
|
|
506
528
|
|
|
@@ -572,6 +594,10 @@ var Heap = class _Heap extends IterableElementBase {
|
|
|
572
594
|
|
|
573
595
|
|
|
574
596
|
|
|
597
|
+
|
|
598
|
+
|
|
599
|
+
|
|
600
|
+
|
|
575
601
|
|
|
576
602
|
|
|
577
603
|
|
|
@@ -668,6 +694,10 @@ var Heap = class _Heap extends IterableElementBase {
|
|
|
668
694
|
|
|
669
695
|
|
|
670
696
|
|
|
697
|
+
|
|
698
|
+
|
|
699
|
+
|
|
700
|
+
|
|
671
701
|
|
|
672
702
|
|
|
673
703
|
|
|
@@ -711,6 +741,10 @@ var Heap = class _Heap extends IterableElementBase {
|
|
|
711
741
|
|
|
712
742
|
|
|
713
743
|
|
|
744
|
+
|
|
745
|
+
|
|
746
|
+
|
|
747
|
+
|
|
714
748
|
|
|
715
749
|
|
|
716
750
|
|
|
@@ -757,6 +791,10 @@ var Heap = class _Heap extends IterableElementBase {
|
|
|
757
791
|
|
|
758
792
|
|
|
759
793
|
|
|
794
|
+
|
|
795
|
+
|
|
796
|
+
|
|
797
|
+
|
|
760
798
|
|
|
761
799
|
|
|
762
800
|
|
|
@@ -800,6 +838,10 @@ var Heap = class _Heap extends IterableElementBase {
|
|
|
800
838
|
|
|
801
839
|
|
|
802
840
|
|
|
841
|
+
|
|
842
|
+
|
|
843
|
+
|
|
844
|
+
|
|
803
845
|
|
|
804
846
|
|
|
805
847
|
|
|
@@ -889,6 +931,10 @@ var Heap = class _Heap extends IterableElementBase {
|
|
|
889
931
|
|
|
890
932
|
|
|
891
933
|
|
|
934
|
+
|
|
935
|
+
|
|
936
|
+
|
|
937
|
+
|
|
892
938
|
|
|
893
939
|
|
|
894
940
|
|
|
@@ -965,6 +1011,10 @@ var Heap = class _Heap extends IterableElementBase {
|
|
|
965
1011
|
|
|
966
1012
|
|
|
967
1013
|
|
|
1014
|
+
|
|
1015
|
+
|
|
1016
|
+
|
|
1017
|
+
|
|
968
1018
|
|
|
969
1019
|
|
|
970
1020
|
|
|
@@ -1014,6 +1064,10 @@ var Heap = class _Heap extends IterableElementBase {
|
|
|
1014
1064
|
|
|
1015
1065
|
|
|
1016
1066
|
|
|
1067
|
+
|
|
1068
|
+
|
|
1069
|
+
|
|
1070
|
+
|
|
1017
1071
|
|
|
1018
1072
|
|
|
1019
1073
|
|
|
@@ -1062,6 +1116,10 @@ var Heap = class _Heap extends IterableElementBase {
|
|
|
1062
1116
|
|
|
1063
1117
|
|
|
1064
1118
|
|
|
1119
|
+
|
|
1120
|
+
|
|
1121
|
+
|
|
1122
|
+
|
|
1065
1123
|
|
|
1066
1124
|
|
|
1067
1125
|
|
|
@@ -1117,6 +1175,10 @@ var Heap = class _Heap extends IterableElementBase {
|
|
|
1117
1175
|
|
|
1118
1176
|
|
|
1119
1177
|
|
|
1178
|
+
|
|
1179
|
+
|
|
1180
|
+
|
|
1181
|
+
|
|
1120
1182
|
|
|
1121
1183
|
|
|
1122
1184
|
|
|
@@ -1130,7 +1192,7 @@ var Heap = class _Heap extends IterableElementBase {
|
|
|
1130
1192
|
*/
|
|
1131
1193
|
map(callback, options, thisArg) {
|
|
1132
1194
|
const { comparator, toElementFn, ...rest } = options ?? {};
|
|
1133
|
-
if (!comparator)
|
|
1195
|
+
if (!comparator) raise(TypeError, ERR.comparatorRequired("Heap.map"));
|
|
1134
1196
|
const out = this._createLike([], { ...rest, comparator, toElementFn });
|
|
1135
1197
|
let i = 0;
|
|
1136
1198
|
for (const x of this) {
|
|
@@ -1157,7 +1219,7 @@ var Heap = class _Heap extends IterableElementBase {
|
|
|
1157
1219
|
}
|
|
1158
1220
|
_DEFAULT_COMPARATOR = /* @__PURE__ */ __name((a, b) => {
|
|
1159
1221
|
if (typeof a === "object" || typeof b === "object") {
|
|
1160
|
-
|
|
1222
|
+
raise(TypeError, ERR.comparatorRequired("Heap"));
|
|
1161
1223
|
}
|
|
1162
1224
|
if (a > b) return 1;
|
|
1163
1225
|
if (a < b) return -1;
|
|
@@ -1282,7 +1344,7 @@ var MaxPriorityQueue = class extends PriorityQueue {
|
|
|
1282
1344
|
super(elements, {
|
|
1283
1345
|
comparator: /* @__PURE__ */ __name((a, b) => {
|
|
1284
1346
|
if (typeof a === "object" || typeof b === "object") {
|
|
1285
|
-
|
|
1347
|
+
raise(TypeError, ERR.comparatorRequired("MaxPriorityQueue"));
|
|
1286
1348
|
}
|
|
1287
1349
|
if (a < b) return 1;
|
|
1288
1350
|
if (a > b) return -1;
|