cubing 0.29.1 → 0.30.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 (113) hide show
  1. package/README.md +1 -6
  2. package/dist/esm/.DS_Store +0 -0
  3. package/dist/esm/alg/index.js +1 -2
  4. package/dist/esm/bluetooth/index.js +36 -32
  5. package/dist/esm/bluetooth/index.js.map +2 -2
  6. package/dist/esm/{chunk-XRZBPKES.js → chunk-35OK6TQ4.js} +328 -66
  7. package/dist/esm/chunk-35OK6TQ4.js.map +7 -0
  8. package/dist/esm/{chunk-WYKXX2XY.js → chunk-4QZRHN6S.js} +10 -8
  9. package/dist/esm/{chunk-WYKXX2XY.js.map → chunk-4QZRHN6S.js.map} +2 -2
  10. package/dist/esm/{chunk-2JDBIQSV.js → chunk-5OQ34D3X.js} +7 -7
  11. package/dist/esm/{chunk-2JDBIQSV.js.map → chunk-5OQ34D3X.js.map} +2 -2
  12. package/dist/esm/{chunk-U2ONHTIX.js → chunk-6FB2XWAK.js} +33 -31
  13. package/dist/esm/chunk-6FB2XWAK.js.map +7 -0
  14. package/dist/esm/{chunk-ZNAYJGVL.js → chunk-C6KMV2PL.js} +2 -2
  15. package/dist/esm/{chunk-ZNAYJGVL.js.map → chunk-C6KMV2PL.js.map} +0 -0
  16. package/dist/esm/{chunk-XU5ILFX5.js → chunk-GQBRF4EM.js} +6 -4
  17. package/dist/esm/{chunk-XU5ILFX5.js.map → chunk-GQBRF4EM.js.map} +2 -2
  18. package/dist/esm/{chunk-WXCNEGW3.js → chunk-HR5D6SD4.js} +2 -2
  19. package/dist/esm/{chunk-WXCNEGW3.js.map → chunk-HR5D6SD4.js.map} +2 -2
  20. package/dist/esm/{chunk-XT3R2ENM.js → chunk-KOAJIBEX.js} +47 -38
  21. package/dist/esm/chunk-KOAJIBEX.js.map +7 -0
  22. package/dist/esm/{chunk-OX6O2ZO5.js → chunk-QHWK5RXN.js} +1 -1
  23. package/dist/esm/chunk-QHWK5RXN.js.map +7 -0
  24. package/dist/esm/{chunk-GW4FGG42.js → chunk-RI2DAEY6.js} +2 -2
  25. package/dist/esm/{chunk-GW4FGG42.js.map → chunk-RI2DAEY6.js.map} +0 -0
  26. package/dist/esm/{chunk-AHEXXC6V.js → chunk-VIUWS2PX.js} +4 -4
  27. package/dist/esm/chunk-VIUWS2PX.js.map +7 -0
  28. package/dist/esm/{chunk-2IZUSAXQ.js → chunk-WEYPAZEE.js} +1 -1
  29. package/dist/esm/{chunk-2IZUSAXQ.js.map → chunk-WEYPAZEE.js.map} +1 -1
  30. package/dist/esm/{chunk-NI7U4XAZ.js → chunk-ZQT3QSWD.js} +226 -113
  31. package/dist/esm/chunk-ZQT3QSWD.js.map +7 -0
  32. package/dist/esm/kpuzzle/index.js +2 -3
  33. package/dist/esm/notation/index.js +2 -3
  34. package/dist/esm/protocol/index.js +4 -5
  35. package/dist/esm/puzzle-geometry/index.js +110 -85
  36. package/dist/esm/puzzle-geometry/index.js.map +2 -2
  37. package/dist/esm/puzzles/index.js +10 -7
  38. package/dist/esm/{puzzles-dynamic-3x3x3-KIG5A6QR.js → puzzles-dynamic-3x3x3-ZKMODX2P.js} +1 -3
  39. package/dist/esm/{puzzles-dynamic-3x3x3-KIG5A6QR.js.map → puzzles-dynamic-3x3x3-ZKMODX2P.js.map} +1 -1
  40. package/dist/esm/{puzzles-dynamic-4x4x4-PEDAPUZK.js → puzzles-dynamic-4x4x4-DT42HVIY.js} +1 -3
  41. package/dist/esm/{puzzles-dynamic-4x4x4-PEDAPUZK.js.map → puzzles-dynamic-4x4x4-DT42HVIY.js.map} +1 -1
  42. package/dist/esm/{puzzles-dynamic-side-events-5C7LMBWX.js → puzzles-dynamic-side-events-HMUBMHA5.js} +2 -4
  43. package/dist/esm/{puzzles-dynamic-side-events-5C7LMBWX.js.map → puzzles-dynamic-side-events-HMUBMHA5.js.map} +2 -2
  44. package/dist/esm/{puzzles-dynamic-unofficial-WWJ4NJMX.js → puzzles-dynamic-unofficial-QXSDLTK5.js} +1 -3
  45. package/dist/esm/{puzzles-dynamic-unofficial-WWJ4NJMX.js.map → puzzles-dynamic-unofficial-QXSDLTK5.js.map} +1 -1
  46. package/dist/esm/scramble/index.js +3 -4
  47. package/dist/esm/search/index.js +8 -9
  48. package/dist/esm/{search-dynamic-sgs-side-events-4H3X5HLH.js → search-dynamic-sgs-side-events-XNTCWRI4.js} +6 -7
  49. package/dist/esm/search-dynamic-sgs-side-events-XNTCWRI4.js.map +7 -0
  50. package/dist/esm/{search-dynamic-sgs-unofficial-7IRW4LVD.js → search-dynamic-sgs-unofficial-5KMZ747E.js} +122 -68
  51. package/dist/esm/search-dynamic-sgs-unofficial-5KMZ747E.js.map +7 -0
  52. package/dist/esm/{search-dynamic-solve-3x3x3-7XZTYQMO.js → search-dynamic-solve-3x3x3-TSXPWENP.js} +649 -407
  53. package/dist/esm/search-dynamic-solve-3x3x3-TSXPWENP.js.map +7 -0
  54. package/dist/esm/{search-dynamic-solve-4x4x4-7JTJCCSY.js → search-dynamic-solve-4x4x4-FKQ2JWK2.js} +399 -151
  55. package/dist/esm/search-dynamic-solve-4x4x4-FKQ2JWK2.js.map +7 -0
  56. package/dist/esm/{search-dynamic-solve-fto-4LI23P6K.js → search-dynamic-solve-fto-GPLW7S5F.js} +74 -35
  57. package/dist/esm/search-dynamic-solve-fto-GPLW7S5F.js.map +7 -0
  58. package/dist/esm/{search-dynamic-solve-kilominx-3HEVQ4MC.js → search-dynamic-solve-kilominx-HB2QFUGF.js} +136 -72
  59. package/dist/esm/search-dynamic-solve-kilominx-HB2QFUGF.js.map +7 -0
  60. package/dist/esm/{search-dynamic-solve-master_tetraminx-UB32C7MM.js → search-dynamic-solve-master_tetraminx-LR3LJI7O.js} +84 -42
  61. package/dist/esm/search-dynamic-solve-master_tetraminx-LR3LJI7O.js.map +7 -0
  62. package/dist/esm/{search-dynamic-solve-sq1-HA72TYF2.js → search-dynamic-solve-sq1-W33UXTDZ.js} +129 -55
  63. package/dist/esm/search-dynamic-solve-sq1-W33UXTDZ.js.map +7 -0
  64. package/dist/esm/search-worker-inside-generated-string-5HKZNHKK.js +3884 -0
  65. package/dist/esm/search-worker-inside-generated-string-5HKZNHKK.js.map +7 -0
  66. package/dist/esm/{search-worker-js-entry-T6YIT7YD.js → search-worker-js-entry-PDXEE46R.js} +44 -36
  67. package/dist/esm/search-worker-js-entry-PDXEE46R.js.map +7 -0
  68. package/dist/esm/{search-worker-ts-entry-OUEC4L5I.js → search-worker-ts-entry-UV2RY2EY.js} +3 -4
  69. package/dist/esm/{search-worker-ts-entry-OUEC4L5I.js.map → search-worker-ts-entry-UV2RY2EY.js.map} +1 -1
  70. package/dist/esm/stream/index.js +1 -2
  71. package/dist/esm/stream/index.js.map +2 -2
  72. package/dist/esm/twisty/index.js +368 -300
  73. package/dist/esm/twisty/index.js.map +3 -3
  74. package/dist/esm/{twisty-dynamic-3d-AZUSXQ5S.js → twisty-dynamic-3d-GPF6TW32.js} +57 -60
  75. package/dist/esm/twisty-dynamic-3d-GPF6TW32.js.map +7 -0
  76. package/dist/types/{Alg-137fb0d5.d.ts → Alg-1c8c3757.d.ts} +25 -26
  77. package/dist/types/{KState-a73111d7.d.ts → KState-7c9e40f4.d.ts} +1 -1
  78. package/dist/types/{TwizzleLink-bef52ecd.d.ts → TwizzleLink-3f8a01d2.d.ts} +19 -18
  79. package/dist/types/alg/index.d.ts +30 -8
  80. package/dist/types/bluetooth/index.d.ts +4 -4
  81. package/dist/types/{bluetooth-puzzle-8a678993.d.ts → bluetooth-puzzle-a64e9756.d.ts} +2 -2
  82. package/dist/types/kpuzzle/index.d.ts +2 -2
  83. package/dist/types/notation/index.d.ts +1 -1
  84. package/dist/types/{outside-e55f28a0.d.ts → outside-b62aa614.d.ts} +2 -2
  85. package/dist/types/{parseAlg-a28f7568.d.ts → parseAlg-d5fbee87.d.ts} +1 -1
  86. package/dist/types/protocol/index.d.ts +2 -2
  87. package/dist/types/puzzle-geometry/index.d.ts +3 -3
  88. package/dist/types/puzzles/index.d.ts +8 -6
  89. package/dist/types/scramble/index.d.ts +3 -3
  90. package/dist/types/search/index.d.ts +3 -3
  91. package/dist/types/stream/index.d.ts +3 -3
  92. package/dist/types/twisty/index.d.ts +5 -5
  93. package/package.json +51 -147
  94. package/dist/esm/chunk-AHEXXC6V.js.map +0 -7
  95. package/dist/esm/chunk-NI7U4XAZ.js.map +0 -7
  96. package/dist/esm/chunk-OX6O2ZO5.js.map +0 -7
  97. package/dist/esm/chunk-SBZRVSPK.js +0 -30
  98. package/dist/esm/chunk-SBZRVSPK.js.map +0 -7
  99. package/dist/esm/chunk-U2ONHTIX.js.map +0 -7
  100. package/dist/esm/chunk-XRZBPKES.js.map +0 -7
  101. package/dist/esm/chunk-XT3R2ENM.js.map +0 -7
  102. package/dist/esm/search-dynamic-sgs-side-events-4H3X5HLH.js.map +0 -7
  103. package/dist/esm/search-dynamic-sgs-unofficial-7IRW4LVD.js.map +0 -7
  104. package/dist/esm/search-dynamic-solve-3x3x3-7XZTYQMO.js.map +0 -7
  105. package/dist/esm/search-dynamic-solve-4x4x4-7JTJCCSY.js.map +0 -7
  106. package/dist/esm/search-dynamic-solve-fto-4LI23P6K.js.map +0 -7
  107. package/dist/esm/search-dynamic-solve-kilominx-3HEVQ4MC.js.map +0 -7
  108. package/dist/esm/search-dynamic-solve-master_tetraminx-UB32C7MM.js.map +0 -7
  109. package/dist/esm/search-dynamic-solve-sq1-HA72TYF2.js.map +0 -7
  110. package/dist/esm/search-worker-inside-generated-string-ZEY77HTF.js +0 -3886
  111. package/dist/esm/search-worker-inside-generated-string-ZEY77HTF.js.map +0 -7
  112. package/dist/esm/search-worker-js-entry-T6YIT7YD.js.map +0 -7
  113. package/dist/esm/twisty-dynamic-3d-AZUSXQ5S.js.map +0 -7
@@ -1,26 +1,29 @@
1
1
  import {
2
2
  randomUIntBelowFactory
3
- } from "./chunk-WXCNEGW3.js";
3
+ } from "./chunk-HR5D6SD4.js";
4
4
  import {
5
5
  Alg
6
- } from "./chunk-NI7U4XAZ.js";
7
- import "./chunk-SBZRVSPK.js";
6
+ } from "./chunk-ZQT3QSWD.js";
8
7
 
9
8
  // src/cubing/vendor/xyzzy/kilosolver.js
10
9
  var PHASE4_THRESHOLD = 7;
11
10
  function factorial(n) {
12
- if (n < 2)
11
+ if (n < 2) {
13
12
  return n;
13
+ }
14
14
  let f = 1;
15
- for (let i = 2; i <= n; i++)
15
+ for (let i = 2; i <= n; i++) {
16
16
  f *= i;
17
+ }
17
18
  return f;
18
19
  }
19
20
  function C(n, k) {
20
- if (k < 0 || k > n)
21
+ if (k < 0 || k > n) {
21
22
  return 0;
22
- if (k === 0 || k === n)
23
+ }
24
+ if (k === 0 || k === n) {
23
25
  return 1;
26
+ }
24
27
  let c = 1;
25
28
  for (let i = 0; i < k; i++) {
26
29
  c = c * (n - i) / (i + 1) | 0;
@@ -49,8 +52,9 @@ function permutation_parity(A) {
49
52
  let parity = 0;
50
53
  for (let i = 0; i < n - 1; i++) {
51
54
  for (let j = i; j < n; j++) {
52
- if (A[i] > A[j])
55
+ if (A[i] > A[j]) {
53
56
  parity ^= 1;
57
+ }
54
58
  }
55
59
  }
56
60
  return parity;
@@ -105,11 +109,13 @@ var [evenpermutation10_to_index, index_to_evenpermutation10] = (() => {
105
109
  function comb_to_index(l) {
106
110
  let bits = l.length;
107
111
  let ones = 0;
108
- for (let i = 0; i < bits; i++)
112
+ for (let i = 0; i < bits; i++) {
109
113
  ones += +(l[i] === 1);
114
+ }
110
115
  let zeros = bits - ones;
111
- if (zeros === 0 || ones === 0 || bits === 1)
116
+ if (zeros === 0 || ones === 0 || bits === 1) {
112
117
  return 0;
118
+ }
113
119
  let b = C(bits - 1, ones);
114
120
  let ind = 0;
115
121
  for (let i = 0; zeros > 0 && ones > 0 && bits > 1; i++) {
@@ -144,8 +150,9 @@ function index_to_comb(ind, ones, bits) {
144
150
  }
145
151
  function compose(A, B) {
146
152
  let C2 = [];
147
- for (let i = 0; i < B.length; i++)
153
+ for (let i = 0; i < B.length; i++) {
148
154
  C2[i] = A[B[i]];
155
+ }
149
156
  return C2;
150
157
  }
151
158
  function compose_o(A, B) {
@@ -159,8 +166,9 @@ function compose_o(A, B) {
159
166
  }
160
167
  function permutation_from_cycle(cycle, n) {
161
168
  let perm = [];
162
- for (let i = 0; i < n; i++)
169
+ for (let i = 0; i < n; i++) {
163
170
  perm[i] = i;
171
+ }
164
172
  for (let i = 0; i < cycle.length; i++) {
165
173
  perm[cycle[i]] = cycle[(i + 1) % cycle.length];
166
174
  }
@@ -168,8 +176,9 @@ function permutation_from_cycle(cycle, n) {
168
176
  }
169
177
  function unsparsify_list(d, n) {
170
178
  let l = Array(n).fill(0);
171
- for (let k in d)
179
+ for (let k in d) {
172
180
  l[k] = d[k];
181
+ }
173
182
  return l;
174
183
  }
175
184
  var move_U = [
@@ -210,8 +219,9 @@ var id = compose_o(move_x2, move_x2);
210
219
  var moves_full = [];
211
220
  for (let i = 0; i < moves.length; i++) {
212
221
  moves_full[i] = [id];
213
- for (let j = 1; j < 5; j++)
222
+ for (let j = 1; j < 5; j++) {
214
223
  moves_full[i][j] = compose_o(moves_full[i][j - 1], moves[i]);
224
+ }
215
225
  }
216
226
  function random_state(randomUintBelow2) {
217
227
  let p = [0];
@@ -220,8 +230,9 @@ function random_state(randomUintBelow2) {
220
230
  p[i] = p[r];
221
231
  p[r] = i;
222
232
  }
223
- if (permutation_parity(p) === 1)
233
+ if (permutation_parity(p) === 1) {
224
234
  [p[0], p[1]] = [p[1], p[0]];
235
+ }
225
236
  let o = Array(20).fill(0);
226
237
  for (let i = 0; i < 19; i++) {
227
238
  o[i] = randomUintBelow2(3);
@@ -237,8 +248,9 @@ function stringify_move_sequence(move_sequence) {
237
248
  }
238
249
  function apply_move_sequence(state, move_sequence) {
239
250
  for (let [m, r] of move_sequence) {
240
- for (let i = 0; i < r; i++)
251
+ for (let i = 0; i < r; i++) {
241
252
  state = compose_o(state, moves[m]);
253
+ }
242
254
  }
243
255
  return state;
244
256
  }
@@ -247,8 +259,10 @@ function generate_random_state_scramble(randomUintBelow2) {
247
259
  }
248
260
  var translation_amounts;
249
261
  {
250
- let A = Math.sin(Math.PI / 5), B = Math.cos(Math.PI / 10);
251
- let C2 = Math.cos(Math.PI / 5), D = Math.sin(Math.PI / 10);
262
+ let A = Math.sin(Math.PI / 5);
263
+ let B = Math.cos(Math.PI / 10);
264
+ let C2 = Math.cos(Math.PI / 5);
265
+ let D = Math.sin(Math.PI / 10);
252
266
  translation_amounts = {
253
267
  U: [0, 0],
254
268
  L: [-A - B, C2 - D],
@@ -266,12 +280,15 @@ var translation_amounts;
266
280
  }
267
281
  function solve_phase1(state) {
268
282
  let p = state[0];
269
- if (p.slice(15, 20).every((x) => x < 15))
283
+ if (p.slice(15, 20).every((x) => x < 15)) {
270
284
  return [];
271
- if (p.slice(0, 5).every((x) => x < 15))
285
+ }
286
+ if (p.slice(0, 5).every((x) => x < 15)) {
272
287
  return [[6, 1]];
288
+ }
273
289
  let flags = p.map((x) => x >= 15);
274
- let depth = 0, sol;
290
+ let depth = 0;
291
+ let sol;
275
292
  while (sol === void 0) {
276
293
  depth++;
277
294
  sol = search_phase1(flags, depth, -1);
@@ -280,30 +297,35 @@ function solve_phase1(state) {
280
297
  return sol;
281
298
  }
282
299
  function search_phase1(flags, depth, last) {
283
- if (depth == 0) {
284
- if (flags.slice(0, 5).some((x) => x))
300
+ if (depth === 0) {
301
+ if (flags.slice(0, 5).some((x) => x)) {
285
302
  return;
303
+ }
286
304
  return [];
287
305
  }
288
306
  for (let move_index = 0; move_index < 6; move_index++) {
289
- if (move_index === last)
307
+ if (move_index === last) {
290
308
  continue;
309
+ }
291
310
  for (let r = 1; r < 5; r++) {
292
311
  let new_flags = compose(flags, moves_full[move_index][r][0]);
293
312
  let sol = search_phase1(new_flags, depth - 1, move_index);
294
- if (sol !== void 0)
313
+ if (sol !== void 0) {
295
314
  return [[move_index, r]].concat(sol);
315
+ }
296
316
  }
297
317
  }
298
318
  return;
299
319
  }
300
320
  function index_phase2(state) {
301
- let p = state[0].slice(0, 15), o = state[1];
321
+ let p = state[0].slice(0, 15);
322
+ let o = state[1];
302
323
  let index_c = comb_to_index(p.map((x) => +(x >= 15)));
303
324
  let index_o = 243 * index_c;
304
325
  for (let i = 0, j = 0; i < 15; i++) {
305
- if (p[i] < 15)
326
+ if (p[i] < 15) {
306
327
  continue;
328
+ }
307
329
  index_o += o[i] * Math.pow(3, j);
308
330
  j++;
309
331
  }
@@ -326,12 +348,14 @@ function solve_phase2(state) {
326
348
  }
327
349
  function index_phase3(state) {
328
350
  let pieces = [5, 6, 7, 8, 14];
329
- let p = state[0].slice(0, 15), o = state[1];
351
+ let p = state[0].slice(0, 15);
352
+ let o = state[1];
330
353
  let index_c = comb_to_index(p.map((x) => +(pieces.indexOf(x) !== -1)));
331
354
  let index_o = 243 * index_c;
332
355
  for (let i = 0, j = 0; i < 15; i++) {
333
- if (pieces.indexOf(p[i]) === -1)
356
+ if (pieces.indexOf(p[i]) === -1) {
334
357
  continue;
358
+ }
335
359
  index_o += o[i] * Math.pow(3, j);
336
360
  j++;
337
361
  }
@@ -353,12 +377,15 @@ function solve_phase3(state) {
353
377
  return ida_solve(index_phase3(state), mtables, ptables);
354
378
  }
355
379
  function index_phase4(state) {
356
- let p = state[0].slice(0, 14), o = state[1];
357
- let index_o = 0, perm = [];
380
+ let p = state[0].slice(0, 14);
381
+ let o = state[1];
382
+ let index_o = 0;
383
+ let perm = [];
358
384
  let j = 0;
359
385
  for (let i of [0, 1, 2, 3, 4, 9, 10, 11, 12, 13]) {
360
- if (i !== 13)
386
+ if (i !== 13) {
361
387
  index_o += o[i] * Math.pow(3, j);
388
+ }
362
389
  perm[j] = p[i] < 5 ? p[i] : p[i] - 4;
363
390
  j++;
364
391
  }
@@ -383,9 +410,11 @@ function solve(state) {
383
410
  }
384
411
  var tables = {};
385
412
  function generate_phase23_orientation_mtable() {
386
- if (tables.phase23om)
413
+ if (tables.phase23om) {
387
414
  return tables.phase23om;
388
- const C15_5 = C(15, 5), THREE = [1, 3, 9, 27, 81, 243];
415
+ }
416
+ const C15_5 = C(15, 5);
417
+ const THREE = [1, 3, 9, 27, 81, 243];
389
418
  let phase23om = Array(C(15, 5) * THREE[5]);
390
419
  tables.phase23om = phase23om;
391
420
  for (let i = 0; i < C15_5; i++) {
@@ -402,8 +431,9 @@ function generate_phase23_orientation_mtable() {
402
431
  if (comb[k] === 1) {
403
432
  orient_full[k] = (j / THREE[l] | 0) % 3;
404
433
  l++;
405
- } else
434
+ } else {
406
435
  orient_full[k] = 99;
436
+ }
407
437
  }
408
438
  for (let move_index = 0; move_index < 6; move_index++) {
409
439
  let move = moves[move_index];
@@ -423,20 +453,23 @@ function generate_phase23_orientation_mtable() {
423
453
  return phase23om;
424
454
  }
425
455
  function generate_phase2_orientation_ptable() {
426
- if (tables.phase2op)
456
+ if (tables.phase2op) {
427
457
  return tables.phase2op;
458
+ }
428
459
  let mtable = generate_phase23_orientation_mtable();
429
460
  return tables.phase2op = bfs(mtable, [243 * 3002]);
430
461
  }
431
462
  function generate_phase3_orientation_ptable() {
432
- if (tables.phase3op)
463
+ if (tables.phase3op) {
433
464
  return tables.phase3op;
465
+ }
434
466
  let mtable = generate_phase23_orientation_mtable();
435
467
  return tables.phase3op = bfs(mtable, [243 * 246]);
436
468
  }
437
469
  function generate_phase23_permutation_mtable() {
438
- if (tables.phase23pm)
470
+ if (tables.phase23pm) {
439
471
  return tables.phase23pm;
472
+ }
440
473
  const FIFTEEN = [
441
474
  1,
442
475
  15,
@@ -474,20 +507,23 @@ function generate_phase23_permutation_mtable() {
474
507
  return tables.phase23pm = phase23pm;
475
508
  }
476
509
  function generate_phase2_permutation_ptable() {
477
- if (tables.phase2pp)
510
+ if (tables.phase2pp) {
478
511
  return tables.phase2pp;
512
+ }
479
513
  let mtable = generate_phase23_permutation_mtable();
480
514
  return tables.phase2pp = bfs(mtable, [213090]);
481
515
  }
482
516
  function generate_phase3_permutation_ptable() {
483
- if (tables.phase3pp)
517
+ if (tables.phase3pp) {
484
518
  return tables.phase3pp;
519
+ }
485
520
  let mtable = generate_phase23_permutation_mtable();
486
521
  return tables.phase3pp = bfs(mtable, [737420]);
487
522
  }
488
523
  function generate_phase4_orientation_mtable() {
489
- if (tables.phase4om)
524
+ if (tables.phase4om) {
490
525
  return tables.phase4om;
526
+ }
491
527
  const THREE = [1, 3, 9, 27, 81, 243, 729, 2187, 6561, 19683, 59049];
492
528
  let mtable = Array(THREE[9]);
493
529
  for (let i = 0; i < THREE[9]; i++) {
@@ -505,17 +541,20 @@ function generate_phase4_orientation_mtable() {
505
541
  (i2) => o[move[0][i2]] + move[1][i2]
506
542
  );
507
543
  let new_i = 0;
508
- for (let j = 0; j < 9; j++)
544
+ for (let j = 0; j < 9; j++) {
509
545
  new_i += new_o[j] % 3 * THREE[j];
546
+ }
510
547
  mtable[i][move_index] = new_i;
511
548
  }
512
549
  }
513
550
  return tables.phase4om = mtable;
514
551
  }
515
552
  function generate_phase4_permutation_mtable() {
516
- if (tables.phase4pm)
553
+ if (tables.phase4pm) {
517
554
  return tables.phase4pm;
518
- const HALFFACT10 = factorial(10) / 2, n = 10;
555
+ }
556
+ const HALFFACT10 = factorial(10) / 2;
557
+ const n = 10;
519
558
  let pre = [0, 1, 2, 3, 4, -1, -1, -1, -1, 5, 6, 7, 8, 9];
520
559
  let post = [0, 1, 2, 3, 4, 9, 10, 11, 12, 13];
521
560
  let move_permutations = [
@@ -536,20 +575,23 @@ function generate_phase4_permutation_mtable() {
536
575
  return tables.phase4pm = mtable;
537
576
  }
538
577
  function generate_phase4_orientation_ptable() {
539
- if (tables.phase4op)
578
+ if (tables.phase4op) {
540
579
  return tables.phase4op;
580
+ }
541
581
  let mtable = generate_phase4_orientation_mtable();
542
582
  return tables.phase4op = bfs(mtable, [0]);
543
583
  }
544
584
  function generate_phase4_permutation_ptable() {
545
- if (tables.phase4pp)
585
+ if (tables.phase4pp) {
546
586
  return tables.phase4pp;
587
+ }
547
588
  let mtable = generate_phase4_permutation_mtable();
548
589
  return tables.phase4pp = bfs(mtable, [0]);
549
590
  }
550
591
  function generate_phase4_near_ptable_list(threshold) {
551
- if (tables.phase4np_list && tables.phase4np_list.threshold === threshold)
592
+ if (tables.phase4np_list && tables.phase4np_list.threshold === threshold) {
552
593
  return tables.phase4np_list;
594
+ }
553
595
  let mtables = [
554
596
  generate_phase4_orientation_mtable(),
555
597
  generate_phase4_permutation_mtable()
@@ -559,12 +601,14 @@ function generate_phase4_near_ptable_list(threshold) {
559
601
  populate(threshold, [0, 0], -1);
560
602
  function populate(depth, state, last2) {
561
603
  states.push(state[0] + base * state[1]);
562
- if (depth === 0)
604
+ if (depth === 0) {
563
605
  return;
606
+ }
564
607
  let new_state = [];
565
608
  for (let move_index = 0; move_index < 3; move_index++) {
566
- if (move_index === last2)
609
+ if (move_index === last2) {
567
610
  continue;
611
+ }
568
612
  new_state[0] = state[0];
569
613
  new_state[1] = state[1];
570
614
  for (let r = 1; r < 5; r++) {
@@ -576,21 +620,26 @@ function generate_phase4_near_ptable_list(threshold) {
576
620
  return;
577
621
  }
578
622
  states.sort((x, y) => x - y);
579
- let unique_states = [], last = -1;
580
- for (let state of states)
581
- if (state !== last)
623
+ let unique_states = [];
624
+ let last = -1;
625
+ for (let state of states) {
626
+ if (state !== last) {
582
627
  unique_states.push(last = state);
628
+ }
629
+ }
583
630
  unique_states.threshold = threshold;
584
631
  return tables.phase4np_list = unique_states;
585
632
  }
586
633
  function binary_search(A, x) {
587
- let lo = 0, hi = A.length - 1;
634
+ let lo = 0;
635
+ let hi = A.length - 1;
588
636
  while (hi - lo > 1) {
589
637
  let mid = lo + hi >> 1;
590
- if (x > A[mid])
638
+ if (x > A[mid]) {
591
639
  lo = mid + 1;
592
- else
640
+ } else {
593
641
  hi = mid;
642
+ }
594
643
  }
595
644
  return x === A[lo] || x === A[hi];
596
645
  }
@@ -627,12 +676,14 @@ function bfs(mtable, goal_states) {
627
676
  function ida_solve(indices, mtables, ptables) {
628
677
  let ncoords = indices.length;
629
678
  let bound = 0;
630
- for (let i = 0; i < ncoords; i++)
679
+ for (let i = 0; i < ncoords; i++) {
631
680
  bound = Math.max(bound, ptables[i][indices[i]]);
681
+ }
632
682
  while (true) {
633
683
  let path = ida_search(indices, mtables, ptables, bound, -1);
634
- if (path !== void 0)
684
+ if (path !== void 0) {
635
685
  return path;
686
+ }
636
687
  bound++;
637
688
  }
638
689
  }
@@ -640,23 +691,29 @@ function ida_search(indices, mtables, ptables, bound, last) {
640
691
  let ncoords = indices.length;
641
692
  let nmoves = mtables[0][0].length;
642
693
  let heuristic = 0;
643
- for (let i = 0; i < ncoords; i++)
694
+ for (let i = 0; i < ncoords; i++) {
644
695
  heuristic = Math.max(heuristic, ptables[i][indices[i]]);
645
- if (heuristic > bound)
696
+ }
697
+ if (heuristic > bound) {
646
698
  return;
647
- if (bound === 0 || heuristic === 0)
699
+ }
700
+ if (bound === 0 || heuristic === 0) {
648
701
  return [];
702
+ }
649
703
  for (let m = 0; m < nmoves; m++) {
650
- if (m === last)
704
+ if (m === last) {
651
705
  continue;
706
+ }
652
707
  let new_indices = indices.slice();
653
- for (let c = 0; c < ncoords; c++)
708
+ for (let c = 0; c < ncoords; c++) {
654
709
  new_indices[c] = mtables[c][indices[c]][m];
710
+ }
655
711
  let r = 1;
656
- while (indices.some((_, i) => indices[i] != new_indices[i])) {
712
+ while (indices.some((_, i) => indices[i] !== new_indices[i])) {
657
713
  let subpath = ida_search(new_indices, mtables, ptables, bound - 1, m);
658
- if (subpath !== void 0)
714
+ if (subpath !== void 0) {
659
715
  return [[m, r]].concat(subpath);
716
+ }
660
717
  for (let c = 0; c < ncoords; c++) {
661
718
  new_indices[c] = mtables[c][new_indices[c]][m];
662
719
  }
@@ -683,24 +740,30 @@ function phase4_ida_solve(indices) {
683
740
  ptable_p,
684
741
  ptable_n
685
742
  );
686
- if (path !== void 0)
743
+ if (path !== void 0) {
687
744
  return path;
745
+ }
688
746
  bound++;
689
747
  }
690
748
  }
691
749
  function phase4_ida_search(indices, bound, last, mtable_o, mtable_p, ptable_o, ptable_p, ptable_n) {
692
750
  let heuristic = Math.max(ptable_o[indices[0]], ptable_p[indices[1]]);
693
- if (heuristic > bound)
751
+ if (heuristic > bound) {
694
752
  return;
695
- if (heuristic <= PHASE4_THRESHOLD && !binary_search(ptable_n, indices[0] + 19683 * indices[1]))
753
+ }
754
+ if (heuristic <= PHASE4_THRESHOLD && !binary_search(ptable_n, indices[0] + 19683 * indices[1])) {
696
755
  heuristic = PHASE4_THRESHOLD + 1;
697
- if (heuristic > bound)
756
+ }
757
+ if (heuristic > bound) {
698
758
  return;
699
- if (bound === 0 || heuristic === 0)
759
+ }
760
+ if (bound === 0 || heuristic === 0) {
700
761
  return [];
762
+ }
701
763
  for (let m = 0; m < 3; m++) {
702
- if (m === last)
764
+ if (m === last) {
703
765
  continue;
766
+ }
704
767
  let new_indices = indices.slice();
705
768
  for (let r = 1; r < 5; r++) {
706
769
  new_indices[0] = mtable_o[new_indices[0]][m];
@@ -715,8 +778,9 @@ function phase4_ida_search(indices, bound, last, mtable_o, mtable_p, ptable_o, p
715
778
  ptable_p,
716
779
  ptable_n
717
780
  );
718
- if (subpath !== void 0)
781
+ if (subpath !== void 0) {
719
782
  return [[m, r]].concat(subpath);
783
+ }
720
784
  }
721
785
  }
722
786
  return;
@@ -733,4 +797,4 @@ getRandomKilominxScramble().then((alg) => alg.log());
733
797
  export {
734
798
  getRandomKilominxScramble
735
799
  };
736
- //# sourceMappingURL=search-dynamic-solve-kilominx-3HEVQ4MC.js.map
800
+ //# sourceMappingURL=search-dynamic-solve-kilominx-HB2QFUGF.js.map