@fluidframework/matrix 2.0.0-internal.3.0.1 → 2.0.0-internal.3.1.0

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.
Files changed (110) hide show
  1. package/.eslintrc.js +20 -21
  2. package/.mocharc.js +2 -2
  3. package/README.md +21 -21
  4. package/api-extractor.json +2 -2
  5. package/bench/bsp-set-optimizations.md +5 -5
  6. package/bench/src/index.ts +38 -20
  7. package/bench/src/read/map.ts +16 -10
  8. package/bench/src/read/nativearray.ts +16 -10
  9. package/bench/src/read/test.ts +17 -19
  10. package/bench/src/read/tiled.ts +240 -181
  11. package/bench/src/util.ts +19 -18
  12. package/bench/tsconfig.json +8 -13
  13. package/dist/bspSet.d.ts.map +1 -1
  14. package/dist/bspSet.js.map +1 -1
  15. package/dist/handlecache.d.ts.map +1 -1
  16. package/dist/handlecache.js +1 -3
  17. package/dist/handlecache.js.map +1 -1
  18. package/dist/handletable.d.ts.map +1 -1
  19. package/dist/handletable.js +7 -3
  20. package/dist/handletable.js.map +1 -1
  21. package/dist/matrix.d.ts +1 -1
  22. package/dist/matrix.d.ts.map +1 -1
  23. package/dist/matrix.js +28 -19
  24. package/dist/matrix.js.map +1 -1
  25. package/dist/ops.d.ts.map +1 -1
  26. package/dist/ops.js.map +1 -1
  27. package/dist/packageVersion.d.ts +1 -1
  28. package/dist/packageVersion.js +1 -1
  29. package/dist/packageVersion.js.map +1 -1
  30. package/dist/permutationvector.d.ts.map +1 -1
  31. package/dist/permutationvector.js +15 -8
  32. package/dist/permutationvector.js.map +1 -1
  33. package/dist/productSet.d.ts.map +1 -1
  34. package/dist/productSet.js +6 -3
  35. package/dist/productSet.js.map +1 -1
  36. package/dist/range.d.ts.map +1 -1
  37. package/dist/range.js.map +1 -1
  38. package/dist/runtime.d.ts.map +1 -1
  39. package/dist/runtime.js.map +1 -1
  40. package/dist/serialization.d.ts.map +1 -1
  41. package/dist/serialization.js.map +1 -1
  42. package/dist/sparsearray2d.d.ts.map +1 -1
  43. package/dist/sparsearray2d.js +12 -12
  44. package/dist/sparsearray2d.js.map +1 -1
  45. package/dist/split.d.ts.map +1 -1
  46. package/dist/split.js +5 -3
  47. package/dist/split.js.map +1 -1
  48. package/dist/types.d.ts.map +1 -1
  49. package/dist/types.js.map +1 -1
  50. package/dist/undoprovider.d.ts.map +1 -1
  51. package/dist/undoprovider.js.map +1 -1
  52. package/lib/bspSet.d.ts.map +1 -1
  53. package/lib/bspSet.js.map +1 -1
  54. package/lib/handlecache.d.ts.map +1 -1
  55. package/lib/handlecache.js +1 -3
  56. package/lib/handlecache.js.map +1 -1
  57. package/lib/handletable.d.ts.map +1 -1
  58. package/lib/handletable.js +7 -3
  59. package/lib/handletable.js.map +1 -1
  60. package/lib/matrix.d.ts +1 -1
  61. package/lib/matrix.d.ts.map +1 -1
  62. package/lib/matrix.js +29 -20
  63. package/lib/matrix.js.map +1 -1
  64. package/lib/ops.d.ts.map +1 -1
  65. package/lib/ops.js.map +1 -1
  66. package/lib/packageVersion.d.ts +1 -1
  67. package/lib/packageVersion.js +1 -1
  68. package/lib/packageVersion.js.map +1 -1
  69. package/lib/permutationvector.d.ts.map +1 -1
  70. package/lib/permutationvector.js +15 -8
  71. package/lib/permutationvector.js.map +1 -1
  72. package/lib/productSet.d.ts.map +1 -1
  73. package/lib/productSet.js +6 -3
  74. package/lib/productSet.js.map +1 -1
  75. package/lib/range.d.ts.map +1 -1
  76. package/lib/range.js.map +1 -1
  77. package/lib/runtime.d.ts.map +1 -1
  78. package/lib/runtime.js.map +1 -1
  79. package/lib/serialization.d.ts.map +1 -1
  80. package/lib/serialization.js.map +1 -1
  81. package/lib/sparsearray2d.d.ts.map +1 -1
  82. package/lib/sparsearray2d.js +12 -12
  83. package/lib/sparsearray2d.js.map +1 -1
  84. package/lib/split.d.ts.map +1 -1
  85. package/lib/split.js +5 -3
  86. package/lib/split.js.map +1 -1
  87. package/lib/types.d.ts.map +1 -1
  88. package/lib/types.js.map +1 -1
  89. package/lib/undoprovider.d.ts.map +1 -1
  90. package/lib/undoprovider.js +1 -1
  91. package/lib/undoprovider.js.map +1 -1
  92. package/package.json +117 -116
  93. package/prettier.config.cjs +1 -1
  94. package/src/bspSet.ts +507 -434
  95. package/src/handlecache.ts +114 -112
  96. package/src/handletable.ts +66 -62
  97. package/src/matrix.ts +781 -710
  98. package/src/ops.ts +11 -11
  99. package/src/packageVersion.ts +1 -1
  100. package/src/permutationvector.ts +425 -368
  101. package/src/productSet.ts +852 -788
  102. package/src/range.ts +8 -8
  103. package/src/runtime.ts +35 -35
  104. package/src/serialization.ts +13 -9
  105. package/src/sparsearray2d.ts +196 -192
  106. package/src/split.ts +111 -90
  107. package/src/types.ts +3 -3
  108. package/src/undoprovider.ts +161 -144
  109. package/tsconfig.esnext.json +6 -6
  110. package/tsconfig.json +8 -12
@@ -6,201 +6,254 @@
6
6
  import { pointwise } from "./test";
7
7
 
8
8
  const enum Consts {
9
- logW = 4,
10
- logH = 5,
11
- w = 1 << logW,
12
- h = 1 << logH,
13
- mw = w - 1,
14
- mh = h - 1,
15
- sizeW = 1 << (4 * logW),
16
- sizeH = 1 << (4 * logH),
9
+ logW = 4,
10
+ logH = 5,
11
+ w = 1 << logW,
12
+ h = 1 << logH,
13
+ mw = w - 1,
14
+ mh = h - 1,
15
+ sizeW = 1 << (4 * logW),
16
+ sizeH = 1 << (4 * logH),
17
17
  }
18
18
 
19
- type CellTile<T> = T[]
19
+ type CellTile<T> = T[];
20
20
 
21
21
  type SparseGrid<T> = CellTile<T>[][][];
22
22
 
23
23
  function getCell<T>(r: number, c: number, grid: SparseGrid<T>): T | undefined {
24
- if (r < 0 || c < 0 || r >= Consts.sizeH || c >= Consts.sizeW) {
25
- return undefined;
26
- }
27
- const t2 = grid[(((c >> (3 * Consts.logW)) & Consts.mw) << Consts.logH) | ((r >> (3 * Consts.logH)) & Consts.mh)];
28
- if (t2) {
29
- const t3 = t2[(((c >> (2 * Consts.logW)) & Consts.mw) << Consts.logH) | ((r >> (2 * Consts.logH)) & Consts.mh)];
30
- if (t3) {
31
- const t4 = t3[(((c >> Consts.logW) & Consts.mw) << Consts.logH) | ((r >> Consts.logH) & Consts.mh)];
32
- if (t4) {
33
- return t4[((c & Consts.mw) << Consts.logH) | (r & Consts.mh)];
34
- }
35
- }
36
- }
37
- return undefined;
24
+ if (r < 0 || c < 0 || r >= Consts.sizeH || c >= Consts.sizeW) {
25
+ return undefined;
26
+ }
27
+ const t2 =
28
+ grid[
29
+ (((c >> (3 * Consts.logW)) & Consts.mw) << Consts.logH) |
30
+ ((r >> (3 * Consts.logH)) & Consts.mh)
31
+ ];
32
+ if (t2) {
33
+ const t3 =
34
+ t2[
35
+ (((c >> (2 * Consts.logW)) & Consts.mw) << Consts.logH) |
36
+ ((r >> (2 * Consts.logH)) & Consts.mh)
37
+ ];
38
+ if (t3) {
39
+ const t4 =
40
+ t3[
41
+ (((c >> Consts.logW) & Consts.mw) << Consts.logH) |
42
+ ((r >> Consts.logH) & Consts.mh)
43
+ ];
44
+ if (t4) {
45
+ return t4[((c & Consts.mw) << Consts.logH) | (r & Consts.mh)];
46
+ }
47
+ }
48
+ }
49
+ return undefined;
38
50
  }
39
51
 
40
52
  function setCell<T>(r: number, c: number, grid: SparseGrid<T>, value: T) {
41
- if (r < 0 || c < 0 || r >= Consts.sizeH || c >= Consts.sizeW) {
42
- return;
43
- }
44
-
45
- const i2 = (((c >> (3 * Consts.logW)) & Consts.mw) << Consts.logH) | ((r >> (3 * Consts.logH)) & Consts.mh);
46
- let t2 = grid[i2];
47
- if (t2 === undefined) {
48
- t2 = grid[i2] = [];
49
- }
50
-
51
- const i3 = (((c >> (2 * Consts.logW)) & Consts.mw) << Consts.logH) | ((r >> (2 * Consts.logH)) & Consts.mh);
52
- let t3 = t2[i3];
53
- if (t3 === undefined) {
54
- t3 = t2[i3] = [];
55
- }
56
-
57
- const i4 = (((c >> Consts.logW) & Consts.mw) << Consts.logH) | ((r >> Consts.logH) & Consts.mh);
58
- let t4 = t3[i4];
59
- if (t4 === undefined) {
60
- t4 = t3[i4] = [];
61
- }
62
- t4[((c & Consts.mw) << Consts.logH) | (r & Consts.mh)] = value;
53
+ if (r < 0 || c < 0 || r >= Consts.sizeH || c >= Consts.sizeW) {
54
+ return;
55
+ }
56
+
57
+ const i2 =
58
+ (((c >> (3 * Consts.logW)) & Consts.mw) << Consts.logH) |
59
+ ((r >> (3 * Consts.logH)) & Consts.mh);
60
+ let t2 = grid[i2];
61
+ if (t2 === undefined) {
62
+ t2 = grid[i2] = [];
63
+ }
64
+
65
+ const i3 =
66
+ (((c >> (2 * Consts.logW)) & Consts.mw) << Consts.logH) |
67
+ ((r >> (2 * Consts.logH)) & Consts.mh);
68
+ let t3 = t2[i3];
69
+ if (t3 === undefined) {
70
+ t3 = t2[i3] = [];
71
+ }
72
+
73
+ const i4 = (((c >> Consts.logW) & Consts.mw) << Consts.logH) | ((r >> Consts.logH) & Consts.mh);
74
+ let t4 = t3[i4];
75
+ if (t4 === undefined) {
76
+ t4 = t3[i4] = [];
77
+ }
78
+ t4[((c & Consts.mw) << Consts.logH) | (r & Consts.mh)] = value;
63
79
  }
64
80
 
65
81
  function clearCell<T>(r: number, c: number, grid: SparseGrid<T>) {
66
- if (r < 0 || c < 0 || r >= Consts.sizeH || c >= Consts.sizeW) {
67
- return;
68
- }
69
-
70
- const i2 = (((c >> (3 * Consts.logW)) & Consts.mw) << Consts.logH) | ((r >> (3 * Consts.logH)) & Consts.mh);
71
- const t2 = grid[i2];
72
- if (t2 === undefined) {
73
- return;
74
- }
75
-
76
- const i3 = (((c >> (2 * Consts.logW)) & Consts.mw) << Consts.logH) | ((r >> (2 * Consts.logH)) & Consts.mh);
77
- const t3 = t2[i3];
78
- if (t3 === undefined) {
79
- return;
80
- }
81
-
82
- const i4 = (((c >> Consts.logW) & Consts.mw) << Consts.logH) | ((r >> Consts.logH) & Consts.mh);
83
- const t4 = t3[i4];
84
- if (t4 === undefined) {
85
- return;
86
- }
87
- delete t4[((c & Consts.mw) << Consts.logH) | (r & Consts.mh)];
82
+ if (r < 0 || c < 0 || r >= Consts.sizeH || c >= Consts.sizeW) {
83
+ return;
84
+ }
85
+
86
+ const i2 =
87
+ (((c >> (3 * Consts.logW)) & Consts.mw) << Consts.logH) |
88
+ ((r >> (3 * Consts.logH)) & Consts.mh);
89
+ const t2 = grid[i2];
90
+ if (t2 === undefined) {
91
+ return;
92
+ }
93
+
94
+ const i3 =
95
+ (((c >> (2 * Consts.logW)) & Consts.mw) << Consts.logH) |
96
+ ((r >> (2 * Consts.logH)) & Consts.mh);
97
+ const t3 = t2[i3];
98
+ if (t3 === undefined) {
99
+ return;
100
+ }
101
+
102
+ const i4 = (((c >> Consts.logW) & Consts.mw) << Consts.logH) | ((r >> Consts.logH) & Consts.mh);
103
+ const t4 = t3[i4];
104
+ if (t4 === undefined) {
105
+ return;
106
+ }
107
+ delete t4[((c & Consts.mw) << Consts.logH) | (r & Consts.mh)];
88
108
  }
89
109
 
90
110
  function forEachCell<T>(grid: SparseGrid<T>, cb: (r: number, c: number, value: T) => void): void {
91
- let i1 = 0;
92
- for (const t1 of grid) {
93
- if (t1 !== undefined) {
94
- let i2 = 0;
95
- const c1 = (i1 >> Consts.logH) << (3 * Consts.logW);
96
- const r1 = (i1 & Consts.mh) << (3 * Consts.logH);
97
- for (const t2 of t1) {
98
- if (t2 !== undefined) {
99
- let i3 = 0;
100
- const c2 = (i2 >> Consts.logH) << (2 * Consts.logW);
101
- const r2 = (i2 & Consts.mh) << (2 * Consts.logH);
102
- for (const t3 of t2) {
103
- if (t3 !== undefined) {
104
- let i4 = 0;
105
- const c3 = (i3 >> Consts.logH) << Consts.logW;
106
- const r3 = (i3 & Consts.mh) << Consts.logH;
107
- for (const value of t3) {
108
- if (value !== undefined) {
109
- cb(r1 | r2 | r3 | i4 & Consts.mh, c1 | c2 | c3 | i4 >> Consts.logH, value);
110
- }
111
- i4++;
112
- }
113
- }
114
- i3++;
115
- }
116
- }
117
- i2++;
118
- }
119
- }
120
- i1++;
121
- }
111
+ let i1 = 0;
112
+ for (const t1 of grid) {
113
+ if (t1 !== undefined) {
114
+ let i2 = 0;
115
+ const c1 = (i1 >> Consts.logH) << (3 * Consts.logW);
116
+ const r1 = (i1 & Consts.mh) << (3 * Consts.logH);
117
+ for (const t2 of t1) {
118
+ if (t2 !== undefined) {
119
+ let i3 = 0;
120
+ const c2 = (i2 >> Consts.logH) << (2 * Consts.logW);
121
+ const r2 = (i2 & Consts.mh) << (2 * Consts.logH);
122
+ for (const t3 of t2) {
123
+ if (t3 !== undefined) {
124
+ let i4 = 0;
125
+ const c3 = (i3 >> Consts.logH) << Consts.logW;
126
+ const r3 = (i3 & Consts.mh) << Consts.logH;
127
+ for (const value of t3) {
128
+ if (value !== undefined) {
129
+ cb(
130
+ r1 | r2 | r3 | (i4 & Consts.mh),
131
+ c1 | c2 | c3 | (i4 >> Consts.logH),
132
+ value,
133
+ );
134
+ }
135
+ i4++;
136
+ }
137
+ }
138
+ i3++;
139
+ }
140
+ }
141
+ i2++;
142
+ }
143
+ }
144
+ i1++;
145
+ }
122
146
  }
123
147
 
124
- function forEachCellInColumn<T>(grid: SparseGrid<T>, column: number, cb: (r: number, c: number, value: T) => void): void {
125
- const colIdx1 = colIdx(column, 3);
126
- const colIdx2 = colIdx(column, 2);
127
- const colIdx3 = colIdx(column, 1);
128
- const colIdx4 = colIdx(column, 0);
129
- for (let r1 = 0; r1 < Consts.h; r1++) {
130
- const t1 = grid[colIdx1 | r1];
131
- if (t1 === undefined) { continue; }
132
- for (let r2 = 0; r2 < Consts.h; r2++) {
133
- const t2 = t1[colIdx2 | r2];
134
- if (t2 === undefined) { continue; }
135
- for (let r3 = 0; r3 < Consts.h; r3++) {
136
- const t3 = t2[colIdx3 | r3];
137
- if (t3 === undefined) { continue; }
138
- for (let r4 = 0; r4 < Consts.h; r4++) {
139
- const cell = t3[colIdx4 | r4];
140
- if (cell === undefined) { continue; }
141
- cb(
142
- (r1 & Consts.mh) << (3 * Consts.logH) |
143
- (r2 & Consts.mh) << (2 * Consts.logH) |
144
- (r3 & Consts.mh) << Consts.logH |
145
- r4 & Consts.mh,
146
- column, cell as any
147
- );
148
- }
149
- }
150
- }
151
- }
148
+ function forEachCellInColumn<T>(
149
+ grid: SparseGrid<T>,
150
+ column: number,
151
+ cb: (r: number, c: number, value: T) => void,
152
+ ): void {
153
+ const colIdx1 = colIdx(column, 3);
154
+ const colIdx2 = colIdx(column, 2);
155
+ const colIdx3 = colIdx(column, 1);
156
+ const colIdx4 = colIdx(column, 0);
157
+ for (let r1 = 0; r1 < Consts.h; r1++) {
158
+ const t1 = grid[colIdx1 | r1];
159
+ if (t1 === undefined) {
160
+ continue;
161
+ }
162
+ for (let r2 = 0; r2 < Consts.h; r2++) {
163
+ const t2 = t1[colIdx2 | r2];
164
+ if (t2 === undefined) {
165
+ continue;
166
+ }
167
+ for (let r3 = 0; r3 < Consts.h; r3++) {
168
+ const t3 = t2[colIdx3 | r3];
169
+ if (t3 === undefined) {
170
+ continue;
171
+ }
172
+ for (let r4 = 0; r4 < Consts.h; r4++) {
173
+ const cell = t3[colIdx4 | r4];
174
+ if (cell === undefined) {
175
+ continue;
176
+ }
177
+ cb(
178
+ ((r1 & Consts.mh) << (3 * Consts.logH)) |
179
+ ((r2 & Consts.mh) << (2 * Consts.logH)) |
180
+ ((r3 & Consts.mh) << Consts.logH) |
181
+ (r4 & Consts.mh),
182
+ column,
183
+ cell as any,
184
+ );
185
+ }
186
+ }
187
+ }
188
+ }
152
189
  }
153
190
 
154
191
  function colIdx(col: number, level: 0 | 1 | 2 | 3): number {
155
- return ((col >> (level * Consts.logW)) & Consts.mw) << Consts.logH;
192
+ return ((col >> (level * Consts.logW)) & Consts.mw) << Consts.logH;
156
193
  }
157
194
 
158
195
  function colIdxUnshifted(col: number, level: 0 | 1 | 2 | 3): number {
159
- return ((col >> (level * Consts.logW)) & Consts.mw);
196
+ return (col >> (level * Consts.logW)) & Consts.mw;
160
197
  }
161
198
 
162
- function forEachCellInColumns<T>(grid: SparseGrid<T>, columnStart: number, numCols: number, cb: (r: number, c: number, value: T) => void): void {
163
- const colEnd = columnStart + numCols - 1;
164
- for (let r1 = 0; r1 < Consts.h; r1++) {
165
- const cStart1 = colIdxUnshifted(columnStart, 3);
166
- const cEnd1 = colIdxUnshifted(colEnd, 3);
167
- for (let c1 = cStart1; c1 <= cEnd1; c1++) {
168
- const t1 = grid[(c1 << Consts.logH) | r1];
169
- if (t1 === undefined) { continue; }
170
- for (let r2 = 0; r2 < Consts.h; r2++) {
171
- const cStart2 = colIdxUnshifted(columnStart, 2);
172
- const cEnd2 = colIdxUnshifted(colEnd, 2);
173
- for (let c2 = cStart2; c2 <= cEnd2; c2++) {
174
- const t2 = t1[(c2 << Consts.logH) | r2];
175
- if (t2 === undefined) { continue; }
176
- for (let r3 = 0; r3 < Consts.h; r3++) {
177
- const cStart3 = colIdxUnshifted(columnStart, 1);
178
- const cEnd3 = colIdxUnshifted(colEnd, 1);
179
- for (let c3 = cStart3; c3 <= cEnd3; c3++) {
180
- const t3 = t2[(c3 << Consts.logH) | r3];
181
- if (t3 === undefined) { continue; }
182
- for (let r4 = 0; r4 < Consts.h; r4++) {
183
- const cStart4 = colIdxUnshifted(columnStart, 0);
184
- const cEnd4 = colIdxUnshifted(colEnd, 0);
185
- for (let c4 = cStart4; c4 <= cEnd4; c4++) {
186
- const cell = t3[(c4 << Consts.logH) | r4];
187
- if (cell === undefined) { continue; }
188
- cb(
189
- (r1 & Consts.mh) << (3 * Consts.logH) |
190
- (r2 & Consts.mh) << (2 * Consts.logH) |
191
- (r3 & Consts.mh) << Consts.logH |
192
- r4 & Consts.mh,
193
- (c1 << (3 * Consts.logW)) | (c2 << (2 * Consts.logW)) | (c3 << Consts.logW) | c4,
194
- cell
195
- );
196
- }
197
- }
198
- }
199
- }
200
- }
201
- }
202
- }
203
- }
199
+ function forEachCellInColumns<T>(
200
+ grid: SparseGrid<T>,
201
+ columnStart: number,
202
+ numCols: number,
203
+ cb: (r: number, c: number, value: T) => void,
204
+ ): void {
205
+ const colEnd = columnStart + numCols - 1;
206
+ for (let r1 = 0; r1 < Consts.h; r1++) {
207
+ const cStart1 = colIdxUnshifted(columnStart, 3);
208
+ const cEnd1 = colIdxUnshifted(colEnd, 3);
209
+ for (let c1 = cStart1; c1 <= cEnd1; c1++) {
210
+ const t1 = grid[(c1 << Consts.logH) | r1];
211
+ if (t1 === undefined) {
212
+ continue;
213
+ }
214
+ for (let r2 = 0; r2 < Consts.h; r2++) {
215
+ const cStart2 = colIdxUnshifted(columnStart, 2);
216
+ const cEnd2 = colIdxUnshifted(colEnd, 2);
217
+ for (let c2 = cStart2; c2 <= cEnd2; c2++) {
218
+ const t2 = t1[(c2 << Consts.logH) | r2];
219
+ if (t2 === undefined) {
220
+ continue;
221
+ }
222
+ for (let r3 = 0; r3 < Consts.h; r3++) {
223
+ const cStart3 = colIdxUnshifted(columnStart, 1);
224
+ const cEnd3 = colIdxUnshifted(colEnd, 1);
225
+ for (let c3 = cStart3; c3 <= cEnd3; c3++) {
226
+ const t3 = t2[(c3 << Consts.logH) | r3];
227
+ if (t3 === undefined) {
228
+ continue;
229
+ }
230
+ for (let r4 = 0; r4 < Consts.h; r4++) {
231
+ const cStart4 = colIdxUnshifted(columnStart, 0);
232
+ const cEnd4 = colIdxUnshifted(colEnd, 0);
233
+ for (let c4 = cStart4; c4 <= cEnd4; c4++) {
234
+ const cell = t3[(c4 << Consts.logH) | r4];
235
+ if (cell === undefined) {
236
+ continue;
237
+ }
238
+ cb(
239
+ ((r1 & Consts.mh) << (3 * Consts.logH)) |
240
+ ((r2 & Consts.mh) << (2 * Consts.logH)) |
241
+ ((r3 & Consts.mh) << Consts.logH) |
242
+ (r4 & Consts.mh),
243
+ (c1 << (3 * Consts.logW)) |
244
+ (c2 << (2 * Consts.logW)) |
245
+ (c3 << Consts.logW) |
246
+ c4,
247
+ cell,
248
+ );
249
+ }
250
+ }
251
+ }
252
+ }
253
+ }
254
+ }
255
+ }
256
+ }
204
257
  }
205
258
 
206
259
  // Remove unused warnings
@@ -210,24 +263,30 @@ forEachCellInColumn;
210
263
  forEachCellInColumns;
211
264
 
212
265
  function initGrid<T>(): SparseGrid<T> {
213
- return [];
266
+ return [];
214
267
  }
215
268
 
216
269
  export class TiledGrid<T> {
217
- private readonly cells: SparseGrid<T> = initGrid();
270
+ private readonly cells: SparseGrid<T> = initGrid();
218
271
 
219
- public get rowCount() { return Consts.sizeH; }
220
- public get colCount() { return Consts.sizeW; }
272
+ public get rowCount() {
273
+ return Consts.sizeH;
274
+ }
275
+ public get colCount() {
276
+ return Consts.sizeW;
277
+ }
221
278
 
222
- public getCell(row: number, col: number) {
223
- return getCell(row, col, this.cells);
224
- }
279
+ public getCell(row: number, col: number) {
280
+ return getCell(row, col, this.cells);
281
+ }
225
282
 
226
- public setCell(row: number, col: number, value: T) {
227
- setCell(row, col, this.cells, value);
228
- }
283
+ public setCell(row: number, col: number, value: T) {
284
+ setCell(row, col, this.cells, value);
285
+ }
229
286
 
230
- public get matrixProducer() { return undefined as any; }
287
+ public get matrixProducer() {
288
+ return undefined as any;
289
+ }
231
290
  }
232
291
 
233
292
  pointwise("TiledGrid", new TiledGrid<number>());
package/bench/src/util.ts CHANGED
@@ -15,38 +15,39 @@ let cached: any;
15
15
  * Paranoid defense against dead code elimination.
16
16
  */
17
17
  export function consume(value: any) {
18
- count++;
19
- if (count >>> 0 === 0) {
20
- cached = value;
21
- }
18
+ count++;
19
+ if (count >>> 0 === 0) {
20
+ cached = value;
21
+ }
22
22
  }
23
23
 
24
24
  // Prevent v8"s optimizer from identifying "cached" as an unused value.
25
25
  process.on("exit", () => {
26
- if (count >>> 0 === 0) {
27
- console.log(`Ignore this: ${cached}`);
28
- }
26
+ if (count >>> 0 === 0) {
27
+ console.log(`Ignore this: ${cached}`);
28
+ }
29
29
  });
30
30
 
31
31
  export function randomId() {
32
- return Math.random()
33
- .toString(36)
34
- .slice(2);
32
+ return Math.random().toString(36).slice(2);
35
33
  }
36
34
 
37
35
  export function createMatrix() {
38
- return new SharedMatrixFactory().create(new MockFluidDataStoreRuntime(), randomId()) as SharedMatrix;
36
+ return new SharedMatrixFactory().create(
37
+ new MockFluidDataStoreRuntime(),
38
+ randomId(),
39
+ ) as SharedMatrix;
39
40
  }
40
41
 
41
42
  export function createContiguousMatrix(rowCount: number, colCount: number) {
42
- const matrix = createMatrix();
43
- matrix.insertRows(0, rowCount);
44
- matrix.insertCols(0, colCount);
45
- return matrix;
43
+ const matrix = createMatrix();
44
+ matrix.insertRows(0, rowCount);
45
+ matrix.insertCols(0, colCount);
46
+ return matrix;
46
47
  }
47
48
 
48
49
  export function createFragmentedMatrix(rowCount: number, colCount: number) {
49
- const matrix = createMatrix();
50
- insertFragmented(matrix, rowCount, colCount);
51
- return matrix;
50
+ const matrix = createMatrix();
51
+ insertFragmented(matrix, rowCount, colCount);
52
+ return matrix;
52
53
  }
@@ -1,15 +1,10 @@
1
1
  {
2
- "extends": "../tsconfig.json",
3
- "exclude": [
4
- "dist",
5
- "node_modules"
6
- ],
7
- "compilerOptions": {
8
- "rootDir": "..",
9
- "outDir": "./dist",
10
- "types": ["node"]
11
- },
12
- "include": [
13
- "./src/**/*"
14
- ]
2
+ "extends": "../tsconfig.json",
3
+ "exclude": ["dist", "node_modules"],
4
+ "compilerOptions": {
5
+ "rootDir": "..",
6
+ "outDir": "./dist",
7
+ "types": ["node"],
8
+ },
9
+ "include": ["./src/**/*"],
15
10
  }
@@ -1 +1 @@
1
- {"version":3,"file":"bspSet.d.ts","sourceRoot":"","sources":["../src/bspSet.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"bspSet.d.ts","sourceRoot":"","sources":["../src/bspSet.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,oDAAoD;AACpD,oBAAY,IAAI,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,IAAI,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;AAE7C,eAAO,MAAM,IAAI,6CAA6D,CAAC;AAK/E,oBAAY,OAAO;IAClB,KAAK,IAAA;IACL,KAAK,IAAA;CACL;AAED,UAAU,QAAQ,CAAC,IAAI,EAAE,KAAK;IAC7B,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC;IACpB,QAAQ,CAAC,KAAK,EAAE,KAAK,CAAC;CACtB;AAED,UAAU,OAAO,CAAC,GAAG,EAAE,KAAK;IAC3B,QAAQ,CAAC,GAAG,EAAE,GAAG,CAAC;IAClB,QAAQ,CAAC,OAAO,EAAE,GAAG,CAAC;IACtB,QAAQ,CAAC,OAAO,EAAE,KAAK,CAAC;CACxB;AAED,oBAAY,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC;AAElC;;;;GAIG;AACH,oBAAY,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC;AAElC,eAAO,MAAM,KAAK,gBAAgB,CAAC;AACnC,eAAO,MAAM,KAAK,gBAAgB,CAAC;AAEnC,aAAK,UAAU,CAAC,GAAG,IAAI,OAAO,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;AAE3C;;;;;;;;GAQG;AACH,aAAK,QAAQ,CAAC,GAAG,IAAI,OAAO,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;AAExC,aAAK,YAAY,GAAG,OAAO,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC;AAC9C,aAAK,UAAU,CAAC,GAAG,IAAI,UAAU,CAAC,GAAG,CAAC,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC;AAEvD,aAAK,qBAAqB,CAAC,GAAG,EAAE,IAAI,EAAE,KAAK,IAAI,QAAQ,CACtD,aAAa,CAAC,GAAG,CAAC,GAAG,IAAI,EACzB,aAAa,CAAC,GAAG,CAAC,GAAG,KAAK,CAC1B,CAAC;AAEF,aAAK,WAAW,CAAC,GAAG,IACjB,qBAAqB,CAAC,GAAG,EAAE,KAAK,EAAE,KAAK,CAAC,GACxC,qBAAqB,CAAC,GAAG,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC;AAC5C,aAAK,aAAa,GAAG,QAAQ,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;AAEpD,aAAK,sBAAsB,CAAC,GAAG,IAAI,UAAU,CAAC,GAAG,CAAC,GAAG,YAAY,CAAC;AAElE,oBAAY,aAAa,CAAC,GAAG,IAC1B,CAAC,sBAAsB,CAAC,GAAG,CAAC,GAAG,WAAW,CAAC,GAAG,CAAC,CAAC,GAChD,CAAC,UAAU,CAAC,GAAG,CAAC,GAAG,aAAa,CAAC,CAAC;AACrC;;;;;;;;GAQG;AACH,oBAAY,aAAa,CAAC,GAAG,IAAI,KAAK,GAAG,KAAK,GAAG,aAAa,CAAC,GAAG,CAAC,CAAC;AAEpE,yGAAyG;AACzG,UAAU,MAAM,CAAC,GAAG,SAAS,QAAQ,CAAC,GAAG,CAAC,EAAE,EAAE;IAC7C,aAAa,EAAE,aAAa,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;IACtC,IAAI,EAAE,aAAa,CAAC,GAAG,CAAC,CAAC;CACzB;AACD,oBAAY,MAAM,CAAC,GAAG,SAAS,QAAQ,CAAC,GAAG,CAAC,EAAE,EAAE,IAAI,KAAK,GAAG,KAAK,GAAG,MAAM,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;AAEpF,MAAM,WAAW,QAAQ,CAAC,CAAC;IAC1B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC;CACzC;AACD,oBAAY,SAAS,CAAC,CAAC,IAAI,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;AAC3C,oBAAY,QAAQ,CAAC,CAAC,IAAI,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;AAE/D,oBAAY,QAAQ,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,GAAG,GAAG,KAAK,CAAC;AACzF,oBAAY,iBAAiB,CAAC,CAAC,IAAI;KACjC,CAAC,IAAI,MAAM,CAAC,CAAC,CAAC,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,EAAE,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;CAC9E,CAAC,MAAM,CAAC,CAAC,CAAC;AAEX,qFAAqF;AACrF,MAAM,WAAW,aAAa,CAAC,GAAG,SAAS,QAAQ,CAAC,GAAG,CAAC,EAAE,EAAE;IAC3D,kGAAkG;IAClG,QAAQ,CAAC,EAAE,EAAE,EAAE,CAAC;IAEhB;gFAC4E;IAC5E,QAAQ,CAAC,KAAK,EAAE,CAAC,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,KAAK,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC;IAE5E,iDAAiD;IACjD,QAAQ,CAAC,QAAQ,EAAE,CAAC,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,KAAK,OAAO,CAAC;IAEpD,wCAAwC;IACxC,QAAQ,CAAC,KAAK,EAAE,CAAC,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,KAAK,OAAO,CAAC;IAElD;;;OAGG;IACH,QAAQ,CAAC,SAAS,EAAE,CAAC,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,KAAK,GAAG,GAAG,SAAS,CAAC;IAE9D;;;OAGG;IACH,QAAQ,CAAC,KAAK,EAAE,CAAC,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,KAAK,GAAG,GAAG,SAAS,CAAC;IAE1D;;;OAGG;IACH,QAAQ,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,KAAK,GAAG,GAAG,SAAS,CAAC;IAE3D,uBAAuB;IACvB,QAAQ,CAAC,OAAO,EAAE,CAAC,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,KAAK,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,SAAS,CAAC;IAEnE,kCAAkC;IAClC,QAAQ,CAAC,GAAG,EAAE,GAAG,CAAC;CAClB;AAED,eAAO,MAAM,iBAAiB,kJAIlB,MAAM,8FAgBhB,CAAC;AAEH,wBAAgB,WAAW,CAAC,GAAG,SAAS,QAAQ,CAAC,GAAG,CAAC,EAAE,EAAE,EACxD,aAAa,EAAE,aAAa,CAAC,GAAG,EAAE,EAAE,CAAC,EACrC,IAAI,EAAE,aAAa,CAAC,GAAG,CAAC,GACtB,MAAM,CAAC,GAAG,EAAE,EAAE,CAAC,CAKjB;AAkBD,wBAAgB,IAAI,CAAC,GAAG,SAAS,QAAQ,CAAC,GAAG,CAAC,EAAE,EAAE,EACjD,aAAa,EAAE,aAAa,CAAC,GAAG,EAAE,EAAE,CAAC,EACrC,OAAO,EAAE,GAAG,EACZ,GAAG,EAAE,GAAG,GACN,aAAa,CAAC,GAAG,CAAC,CAwBpB;AAED,wBAAgB,aAAa,CAAC,GAAG,SAAS,QAAQ,CAAC,GAAG,CAAC,EAAE,EAAE,EAC1D,qBAAqB,EAAE,aAAa,CAAC,GAAG,EAAE,EAAE,CAAC,SAMhC,GAAG,qBAChB;AAiFD,wBAAgB,YAAY,CAAC,GAAG,SAAS,QAAQ,CAAC,GAAG,CAAC,EAAE,EAAE,EACzD,aAAa,EAAE,aAAa,CAAC,GAAG,EAAE,EAAE,CAAC,EACrC,IAAI,EAAE,aAAa,CAAC,GAAG,CAAC,EACxB,KAAK,EAAE,aAAa,CAAC,GAAG,CAAC,GACvB,aAAa,CAAC,GAAG,CAAC,CA4BpB;AAED,wBAAgB,KAAK,CAAC,GAAG,SAAS,QAAQ,CAAC,GAAG,CAAC,EAAE,EAAE,EAClD,IAAI,EAAE,MAAM,CAAC,GAAG,EAAE,EAAE,CAAC,EACrB,KAAK,EAAE,MAAM,CAAC,GAAG,EAAE,EAAE,CAAC,GACpB,MAAM,CAAC,GAAG,EAAE,EAAE,CAAC,CAkBjB;AA2BD,wBAAgB,gBAAgB,CAAC,GAAG,SAAS,QAAQ,CAAC,GAAG,CAAC,EAAE,EAAE,EAC7D,aAAa,EAAE,aAAa,CAAC,GAAG,EAAE,EAAE,CAAC,EACrC,IAAI,EAAE,aAAa,CAAC,GAAG,CAAC,EACxB,KAAK,EAAE,aAAa,CAAC,GAAG,CAAC,GACvB,aAAa,CAAC,GAAG,CAAC,CA4BpB;AAED,wBAAgB,SAAS,CAAC,GAAG,SAAS,QAAQ,CAAC,GAAG,CAAC,EAAE,EAAE,EACtD,IAAI,EAAE,MAAM,CAAC,GAAG,EAAE,EAAE,CAAC,EACrB,KAAK,EAAE,MAAM,CAAC,GAAG,EAAE,EAAE,CAAC,GACpB,MAAM,CAAC,GAAG,EAAE,EAAE,CAAC,CAkBjB;AAED,wBAAgB,YAAY,CAAC,GAAG,SAAS,QAAQ,CAAC,GAAG,CAAC,EAAE,EAAE,EACzD,aAAa,EAAE,aAAa,CAAC,GAAG,EAAE,EAAE,CAAC,EACrC,IAAI,EAAE,aAAa,CAAC,GAAG,CAAC,EACxB,KAAK,EAAE,aAAa,CAAC,GAAG,CAAC,GACvB,OAAO,CAkBT;AAED,wBAAgB,KAAK,CAAC,GAAG,SAAS,QAAQ,CAAC,GAAG,CAAC,EAAE,EAAE,EAClD,IAAI,EAAE,MAAM,CAAC,GAAG,EAAE,EAAE,CAAC,EACrB,KAAK,EAAE,MAAM,CAAC,GAAG,EAAE,EAAE,CAAC,GACpB,OAAO,CAQT;AAsBD,wBAAgB,aAAa,CAAC,GAAG,SAAS,QAAQ,CAAC,GAAG,CAAC,EAAE,EAAE,EAC1D,aAAa,EAAE,aAAa,CAAC,GAAG,EAAE,EAAE,CAAC,EACrC,IAAI,EAAE,aAAa,CAAC,GAAG,CAAC,EACxB,KAAK,EAAE,aAAa,CAAC,GAAG,CAAC,GACvB,aAAa,CAAC,GAAG,CAAC,CA6BpB;AAED,wBAAgB,MAAM,CAAC,GAAG,SAAS,QAAQ,CAAC,GAAG,CAAC,EAAE,EAAE,EACnD,IAAI,EAAE,MAAM,CAAC,GAAG,EAAE,EAAE,CAAC,EACrB,KAAK,EAAE,MAAM,CAAC,GAAG,EAAE,EAAE,CAAC,GACpB,MAAM,CAAC,GAAG,EAAE,EAAE,CAAC,CAqBjB;AAQD,wBAAgB,UAAU,CAAC,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,SAAS,EAAE,KAAK,EAAE,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,SAAS,0BAWrF;AAED,wBAAgB,cAAc,CAAC,GAAG,SAAS,QAAQ,CAAC,GAAG,CAAC,EAAE,EAAE,EAC3D,aAAa,EAAE,aAAa,CAAC,GAAG,EAAE,EAAE,CAAC,EACrC,IAAI,EAAE,aAAa,CAAC,GAAG,CAAC,EACxB,KAAK,EAAE,aAAa,CAAC,GAAG,CAAC,GACvB,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,SAAS,CA2CxB;AAED,wBAAgB,OAAO,CAAC,GAAG,SAAS,QAAQ,CAAC,GAAG,CAAC,EAAE,EAAE,EACpD,IAAI,EAAE,MAAM,CAAC,GAAG,EAAE,EAAE,CAAC,EACrB,KAAK,EAAE,MAAM,CAAC,GAAG,EAAE,EAAE,CAAC,0BA2BtB;AAED,eAAO,MAAM,aAAa,4HAG0B,CAAC;AAErD,eAAO,MAAM,UAAU,mGACJ,CAAC;AAUpB,wBAAgB,YAAY,CAAC,GAAG,SAAS,QAAQ,CAAC,GAAG,CAAC,EAAE,EAAE,EAAE,GAAG,EAAE,MAAM,CAAC,GAAG,EAAE,EAAE,CAAC,UAK/E;AA0BD,wBAAgB,UAAU,CAAC,GAAG,SAAS,QAAQ,CAAC,GAAG,CAAC,EAAE,EAAE,EACvD,GAAG,EAAE,KAAK,GAAG,MAAM,CAAC,GAAG,EAAE,EAAE,CAAC,EAC5B,CAAC,EAAE,CAAC,GAAG,EAAE,GAAG,KAAK,OAAO,GACtB,OAAO,CAKT"}