cubing 0.28.1 → 0.28.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.
Files changed (98) hide show
  1. package/dist/esm/.DS_Store +0 -0
  2. package/dist/esm/alg/index.js +2 -2
  3. package/dist/esm/bluetooth/index.js +219 -83
  4. package/dist/esm/bluetooth/index.js.map +3 -3
  5. package/dist/esm/{chunk-F4WWCPVE.js → chunk-2IZUSAXQ.js} +2 -2
  6. package/dist/esm/{chunk-F4WWCPVE.js.map → chunk-2IZUSAXQ.js.map} +1 -1
  7. package/dist/esm/{chunk-ZY3RTFFS.js → chunk-5744RHHG.js} +143 -56
  8. package/dist/esm/{chunk-ZY3RTFFS.js.map → chunk-5744RHHG.js.map} +2 -2
  9. package/dist/esm/{chunk-WAL36PO3.js → chunk-76H7SSCY.js} +28 -12
  10. package/dist/esm/{chunk-WAL36PO3.js.map → chunk-76H7SSCY.js.map} +1 -1
  11. package/dist/esm/{chunk-LSVR2HCG.js → chunk-76UZ2QTB.js} +389 -363
  12. package/dist/esm/{chunk-LSVR2HCG.js.map → chunk-76UZ2QTB.js.map} +1 -1
  13. package/dist/esm/{chunk-YSVFZVG4.js → chunk-D4YYXJDB.js} +175 -72
  14. package/dist/esm/{chunk-YSVFZVG4.js.map → chunk-D4YYXJDB.js.map} +3 -3
  15. package/dist/esm/{chunk-NPHUBFZ6.js → chunk-FEIKQ7FV.js} +2 -2
  16. package/dist/esm/{chunk-NPHUBFZ6.js.map → chunk-FEIKQ7FV.js.map} +1 -1
  17. package/dist/esm/{chunk-7D7LW3WQ.js → chunk-LOTZ7ZO7.js} +8 -4
  18. package/dist/esm/{chunk-7D7LW3WQ.js.map → chunk-LOTZ7ZO7.js.map} +1 -1
  19. package/dist/esm/{chunk-GVPTO3OF.js → chunk-OX6O2ZO5.js} +1 -1
  20. package/dist/esm/{chunk-GVPTO3OF.js.map → chunk-OX6O2ZO5.js.map} +1 -1
  21. package/dist/esm/{chunk-CSBUJ64Q.js → chunk-PCR6JT2W.js} +373 -238
  22. package/dist/esm/chunk-PCR6JT2W.js.map +7 -0
  23. package/dist/esm/{chunk-32FWPPTW.js → chunk-PTUPP5AW.js} +22 -8
  24. package/dist/esm/{chunk-32FWPPTW.js.map → chunk-PTUPP5AW.js.map} +1 -1
  25. package/dist/esm/{chunk-MWKALF6W.js → chunk-RTFKKZPH.js} +21 -12
  26. package/dist/esm/{chunk-MWKALF6W.js.map → chunk-RTFKKZPH.js.map} +2 -2
  27. package/dist/esm/{chunk-MGJA5U5O.js → chunk-SBZRVSPK.js} +1 -12
  28. package/dist/esm/{chunk-MGJA5U5O.js.map → chunk-SBZRVSPK.js.map} +0 -0
  29. package/dist/esm/{chunk-67VJZGH2.js → chunk-TX2AQ4XW.js} +35 -13
  30. package/dist/esm/{chunk-67VJZGH2.js.map → chunk-TX2AQ4XW.js.map} +2 -2
  31. package/dist/esm/{chunk-V55YSWJY.js → chunk-WXCNEGW3.js} +10 -4
  32. package/dist/esm/{chunk-V55YSWJY.js.map → chunk-WXCNEGW3.js.map} +1 -1
  33. package/dist/esm/{chunk-ALBEW4DJ.js → chunk-ZB3P5AZN.js} +1 -1
  34. package/dist/esm/{chunk-ALBEW4DJ.js.map → chunk-ZB3P5AZN.js.map} +1 -1
  35. package/dist/esm/kpuzzle/index.js +3 -3
  36. package/dist/esm/notation/index.js +3 -3
  37. package/dist/esm/protocol/index.js +5 -5
  38. package/dist/esm/puzzle-geometry/index.js +271 -71
  39. package/dist/esm/puzzle-geometry/index.js.map +2 -2
  40. package/dist/esm/puzzles/index.js +5 -5
  41. package/dist/esm/{puzzles-dynamic-3x3x3-NB2PEZTV.js → puzzles-dynamic-3x3x3-KIG5A6QR.js} +2 -2
  42. package/dist/esm/{puzzles-dynamic-3x3x3-NB2PEZTV.js.map → puzzles-dynamic-3x3x3-KIG5A6QR.js.map} +0 -0
  43. package/dist/esm/puzzles-dynamic-4x4x4-PEDAPUZK.js +126 -0
  44. package/dist/esm/puzzles-dynamic-4x4x4-PEDAPUZK.js.map +7 -0
  45. package/dist/esm/{puzzles-dynamic-side-events-WZI4Y3N6.js → puzzles-dynamic-side-events-5C7LMBWX.js} +2 -2
  46. package/dist/esm/{puzzles-dynamic-side-events-WZI4Y3N6.js.map → puzzles-dynamic-side-events-5C7LMBWX.js.map} +0 -0
  47. package/dist/esm/{puzzles-dynamic-unofficial-FUG3JBMH.js → puzzles-dynamic-unofficial-WWJ4NJMX.js} +2 -2
  48. package/dist/esm/{puzzles-dynamic-unofficial-FUG3JBMH.js.map → puzzles-dynamic-unofficial-WWJ4NJMX.js.map} +0 -0
  49. package/dist/esm/scramble/index.js +5 -5
  50. package/dist/esm/search/index.js +10 -10
  51. package/dist/esm/{search-dynamic-sgs-side-events-R3HDJ5XQ.js → search-dynamic-sgs-side-events-X62KI7ZV.js} +35 -17
  52. package/dist/esm/{search-dynamic-sgs-side-events-R3HDJ5XQ.js.map → search-dynamic-sgs-side-events-X62KI7ZV.js.map} +2 -2
  53. package/dist/esm/{search-dynamic-sgs-unofficial-FQNKGHVO.js → search-dynamic-sgs-unofficial-YAPJYTMF.js} +35 -14
  54. package/dist/esm/{search-dynamic-sgs-unofficial-FQNKGHVO.js.map → search-dynamic-sgs-unofficial-YAPJYTMF.js.map} +2 -2
  55. package/dist/esm/{search-dynamic-solve-3x3x3-K42IWMQV.js → search-dynamic-solve-3x3x3-7XZTYQMO.js} +795 -142
  56. package/dist/esm/{search-dynamic-solve-3x3x3-K42IWMQV.js.map → search-dynamic-solve-3x3x3-7XZTYQMO.js.map} +1 -1
  57. package/dist/esm/{search-dynamic-solve-4x4x4-XRV4NBMQ.js → search-dynamic-solve-4x4x4-5HST67LZ.js} +135 -29
  58. package/dist/esm/{search-dynamic-solve-4x4x4-XRV4NBMQ.js.map → search-dynamic-solve-4x4x4-5HST67LZ.js.map} +1 -1
  59. package/dist/esm/{search-dynamic-solve-fto-O6UXF7EC.js → search-dynamic-solve-fto-4LI23P6K.js} +253 -69
  60. package/dist/esm/{search-dynamic-solve-fto-O6UXF7EC.js.map → search-dynamic-solve-fto-4LI23P6K.js.map} +2 -2
  61. package/dist/esm/{search-dynamic-solve-kilominx-G4MLGWNS.js → search-dynamic-solve-kilominx-PIS3T2P4.js} +32 -8
  62. package/dist/esm/{search-dynamic-solve-kilominx-G4MLGWNS.js.map → search-dynamic-solve-kilominx-PIS3T2P4.js.map} +2 -2
  63. package/dist/esm/{search-dynamic-solve-master_tetraminx-3RKD3IAN.js → search-dynamic-solve-master_tetraminx-UB32C7MM.js} +111 -42
  64. package/dist/esm/{search-dynamic-solve-master_tetraminx-3RKD3IAN.js.map → search-dynamic-solve-master_tetraminx-UB32C7MM.js.map} +2 -2
  65. package/dist/esm/{search-dynamic-solve-sq1-WIJEGVLP.js → search-dynamic-solve-sq1-HA72TYF2.js} +54 -9
  66. package/dist/esm/{search-dynamic-solve-sq1-WIJEGVLP.js.map → search-dynamic-solve-sq1-HA72TYF2.js.map} +2 -2
  67. package/dist/esm/{search-worker-inside-generated-string-IZCKWXUA.js → search-worker-inside-generated-string-HMA547DJ.js} +146 -28
  68. package/dist/esm/search-worker-inside-generated-string-HMA547DJ.js.map +7 -0
  69. package/dist/esm/{search-worker-js-entry-WBEKNBB7.js → search-worker-js-entry-3QMPUE4B.js} +147 -53
  70. package/dist/esm/{search-worker-js-entry-WBEKNBB7.js.map → search-worker-js-entry-3QMPUE4B.js.map} +2 -2
  71. package/dist/esm/{search-worker-ts-entry-XQWMEOC4.js → search-worker-ts-entry-3RHWJNVQ.js} +5 -5
  72. package/dist/esm/{search-worker-ts-entry-XQWMEOC4.js.map → search-worker-ts-entry-3RHWJNVQ.js.map} +1 -1
  73. package/dist/esm/stream/index.js +12 -8
  74. package/dist/esm/stream/index.js.map +1 -1
  75. package/dist/esm/twisty/index.js +1140 -746
  76. package/dist/esm/twisty/index.js.map +3 -3
  77. package/dist/esm/{twisty-dynamic-3d-QOX7IEXC.js → twisty-dynamic-3d-2KRJEHAN.js} +352 -175
  78. package/dist/esm/{twisty-dynamic-3d-QOX7IEXC.js.map → twisty-dynamic-3d-2KRJEHAN.js.map} +2 -2
  79. package/dist/types/{Alg-e2a80975.d.ts → Alg-137fb0d5.d.ts} +19 -16
  80. package/dist/types/{KState-a2f0e651.d.ts → KState-d5f04c9a.d.ts} +1 -1
  81. package/dist/types/{TwizzleLink-dcf51446.d.ts → TwizzleLink-43d94aca.d.ts} +46 -8
  82. package/dist/types/alg/index.d.ts +4 -4
  83. package/dist/types/bluetooth/index.d.ts +4 -4
  84. package/dist/types/{bluetooth-puzzle-3670a6a1.d.ts → bluetooth-puzzle-7e1a2576.d.ts} +9 -9
  85. package/dist/types/kpuzzle/index.d.ts +2 -2
  86. package/dist/types/notation/index.d.ts +1 -1
  87. package/dist/types/{outside-0ce1b145.d.ts → outside-f83e819a.d.ts} +2 -2
  88. package/dist/types/{parseAlg-db0dec6c.d.ts → parseAlg-a28f7568.d.ts} +1 -1
  89. package/dist/types/protocol/index.d.ts +2 -2
  90. package/dist/types/puzzle-geometry/index.d.ts +3 -3
  91. package/dist/types/puzzles/index.d.ts +5 -5
  92. package/dist/types/scramble/index.d.ts +3 -3
  93. package/dist/types/search/index.d.ts +3 -3
  94. package/dist/types/stream/index.d.ts +5 -5
  95. package/dist/types/twisty/index.d.ts +5 -5
  96. package/package.json +7 -4
  97. package/dist/esm/chunk-CSBUJ64Q.js.map +0 -7
  98. package/dist/esm/search-worker-inside-generated-string-IZCKWXUA.js.map +0 -7
@@ -1,7 +1,7 @@
1
1
  import {
2
2
  randomUIntBelowFactory
3
- } from "./chunk-V55YSWJY.js";
4
- import "./chunk-MGJA5U5O.js";
3
+ } from "./chunk-WXCNEGW3.js";
4
+ import "./chunk-SBZRVSPK.js";
5
5
 
6
6
  // src/cubing/vendor/xyzzy/fto-solver.js
7
7
  function factorial(n) {
@@ -296,17 +296,20 @@ function permutation_order(perm) {
296
296
  return order;
297
297
  }
298
298
  var solved_state = Array(72).fill().map((_, i) => i / 9 | 0);
299
- var move_U = permutation_from_cycles([
300
- [0, 4, 8],
301
- [1, 6, 3],
302
- [2, 5, 7],
303
- [9, 22, 35],
304
- [45, 67, 44],
305
- [47, 68, 43],
306
- [46, 69, 39],
307
- [50, 70, 38],
308
- [49, 71, 36]
309
- ], 72);
299
+ var move_U = permutation_from_cycles(
300
+ [
301
+ [0, 4, 8],
302
+ [1, 6, 3],
303
+ [2, 5, 7],
304
+ [9, 22, 35],
305
+ [45, 67, 44],
306
+ [47, 68, 43],
307
+ [46, 69, 39],
308
+ [50, 70, 38],
309
+ [49, 71, 36]
310
+ ],
311
+ 72
312
+ );
310
313
  var move_Ui = compose(move_U, move_U);
311
314
  var move_X = Array(72).fill().map((_, i) => (i / 18 | 0) * 18 + (i + 9) % 18);
312
315
  var move_Y = Array(72).fill().map((_, i) => (i / 36 | 0) * 36 + (i + 18) % 36);
@@ -314,14 +317,17 @@ var move_Z = Array(72).fill().map((_, i) => (i + 36) % 72);
314
317
  var move_L = compose3(move_Z, move_Ui, move_Z);
315
318
  var move_F = compose3(move_X, move_U, move_X);
316
319
  var move_R = compose3(move_X, move_L, move_X);
317
- var move_Us = permutation_from_cycles([
318
- [10, 24, 30],
319
- [11, 23, 34],
320
- [12, 19, 33],
321
- [42, 48, 64],
322
- [41, 52, 65],
323
- [37, 51, 66]
324
- ], 72);
320
+ var move_Us = permutation_from_cycles(
321
+ [
322
+ [10, 24, 30],
323
+ [11, 23, 34],
324
+ [12, 19, 33],
325
+ [42, 48, 64],
326
+ [41, 52, 65],
327
+ [37, 51, 66]
328
+ ],
329
+ 72
330
+ );
325
331
  var move_Uw = compose(move_U, move_Us);
326
332
  var move_Uwi = compose(move_Uw, move_Uw);
327
333
  var move_Lw = compose3(move_Z, move_Uwi, move_Z);
@@ -374,10 +380,16 @@ function identify_edge_piece(colourA, colourB) {
374
380
  throw new Error("unknown edge piece");
375
381
  }
376
382
  function get_corner_piece(facelets, location) {
377
- return identify_corner_piece(facelets[corner_piece_facelets[location][0]], facelets[corner_piece_facelets[location][2]]);
383
+ return identify_corner_piece(
384
+ facelets[corner_piece_facelets[location][0]],
385
+ facelets[corner_piece_facelets[location][2]]
386
+ );
378
387
  }
379
388
  function get_edge_piece(facelets, location) {
380
- return identify_edge_piece(facelets[edge_piece_facelets[location][0]], facelets[edge_piece_facelets[location][1]]);
389
+ return identify_edge_piece(
390
+ facelets[edge_piece_facelets[location][0]],
391
+ facelets[edge_piece_facelets[location][1]]
392
+ );
381
393
  }
382
394
  function set_corner_piece(facelets, location, value, orientation) {
383
395
  let indices = corner_piece_facelets[location];
@@ -402,8 +414,12 @@ function convert_move_to_permutations(move) {
402
414
  let cp_half = cp_raw.map(([p, o]) => p + 6 * o);
403
415
  let cp = cp_half.concat(cp_half.map((x) => (x + 6) % 12));
404
416
  let ep = Array(12).fill().map((_, i) => get_edge_piece(state, i));
405
- let ap = Array(12).fill().map((_, i) => centreA_piece_facelets.indexOf(move[centreA_piece_facelets[i]]));
406
- let bp = Array(12).fill().map((_, i) => centreB_piece_facelets.indexOf(move[centreB_piece_facelets[i]]));
417
+ let ap = Array(12).fill().map(
418
+ (_, i) => centreA_piece_facelets.indexOf(move[centreA_piece_facelets[i]])
419
+ );
420
+ let bp = Array(12).fill().map(
421
+ (_, i) => centreB_piece_facelets.indexOf(move[centreB_piece_facelets[i]])
422
+ );
407
423
  return { cp, ep, ap, bp };
408
424
  }
409
425
  var moves = [
@@ -510,7 +526,10 @@ function simplify_move_sequence(move_sequence, make_noise = false) {
510
526
  return simplified;
511
527
  }
512
528
  function generate_random_state_scramble(randomUintBelow2) {
513
- return stringify_move_sequence(invert_move_sequence(solve(random_state(randomUintBelow2), true)), true);
529
+ return stringify_move_sequence(
530
+ invert_move_sequence(solve(random_state(randomUintBelow2), true)),
531
+ true
532
+ );
514
533
  }
515
534
  function generate_mtable_comb4_generic(n, k0, k1, k2, k3, permutations) {
516
535
  let N = C4(n, k0, k1, k2, k3);
@@ -704,10 +723,14 @@ function index_phase1(facelets) {
704
723
  let [itc, cti] = generate_comb4_lookup_tables(12, 6, 0, 3, 3);
705
724
  let ep = Array(12).fill().map((_, i) => get_edge_piece(facelets, i));
706
725
  let edge_coord = ep.indexOf(8) + 12 * ep.indexOf(9) + 12 ** 2 * ep.indexOf(10) + 12 ** 3 * ep.indexOf(11);
707
- let [a_coord, b_coord] = [centreA_piece_facelets, centreB_piece_facelets].map((facelet_indices) => {
708
- let arr = facelet_indices.map((x) => phase1_centre_colour_map[facelets[x]]);
709
- return cti[arr.reduce((acc, x, j) => acc | x << 2 * j, 0)];
710
- });
726
+ let [a_coord, b_coord] = [centreA_piece_facelets, centreB_piece_facelets].map(
727
+ (facelet_indices) => {
728
+ let arr = facelet_indices.map(
729
+ (x) => phase1_centre_colour_map[facelets[x]]
730
+ );
731
+ return cti[arr.reduce((acc, x, j) => acc | x << 2 * j, 0)];
732
+ }
733
+ );
711
734
  return [edge_coord, a_coord, b_coord];
712
735
  }
713
736
  function generate_phase1_edge_mtable() {
@@ -731,13 +754,27 @@ function generate_phase1_centreA_mtable() {
731
754
  if (cached_mtables.phase1_centreA) {
732
755
  return cached_mtables.phase1_centreA;
733
756
  }
734
- return cached_mtables.phase1_centreA = generate_mtable_comb4_generic(12, 6, 0, 3, 3, move_permutations.map((x) => x.ap));
757
+ return cached_mtables.phase1_centreA = generate_mtable_comb4_generic(
758
+ 12,
759
+ 6,
760
+ 0,
761
+ 3,
762
+ 3,
763
+ move_permutations.map((x) => x.ap)
764
+ );
735
765
  }
736
766
  function generate_phase1_centreB_mtable() {
737
767
  if (cached_mtables.phase1_centreB) {
738
768
  return cached_mtables.phase1_centreB;
739
769
  }
740
- return cached_mtables.phase1_centreB = generate_mtable_comb4_generic(12, 6, 0, 3, 3, move_permutations.map((x) => x.bp));
770
+ return cached_mtables.phase1_centreB = generate_mtable_comb4_generic(
771
+ 12,
772
+ 6,
773
+ 0,
774
+ 3,
775
+ 3,
776
+ move_permutations.map((x) => x.bp)
777
+ );
741
778
  }
742
779
  function generate_phase1_centre_ptable() {
743
780
  if (cached_ptables.phase1_centre) {
@@ -749,7 +786,10 @@ function generate_phase1_centre_ptable() {
749
786
  let x9 = x >> 18 & 3;
750
787
  return x6 === 2 && x9 === 3;
751
788
  }).map((x) => cti[x]);
752
- return cached_ptables.phase1_centre = bfs(generate_phase1_centreB_mtable(), goal_states);
789
+ return cached_ptables.phase1_centre = bfs(
790
+ generate_phase1_centreB_mtable(),
791
+ goal_states
792
+ );
753
793
  }
754
794
  function* solve_phase1_gen(facelets) {
755
795
  let mtables = [
@@ -777,7 +817,11 @@ function* phase1_ida_solve_gen(indices, mtables, ptables, moves_left) {
777
817
  function* phase1_ida_search_gen(indices, mtables, ptables, bound, last) {
778
818
  let ncoords = 3;
779
819
  let nmoves = 8;
780
- let heuristic = Math.max(ptables[0][indices[0]], ptables[1][indices[1]], ptables[2][indices[2]]);
820
+ let heuristic = Math.max(
821
+ ptables[0][indices[0]],
822
+ ptables[1][indices[1]],
823
+ ptables[2][indices[2]]
824
+ );
781
825
  if (heuristic > bound)
782
826
  return;
783
827
  if (bound === 0) {
@@ -797,7 +841,13 @@ function* phase1_ida_search_gen(indices, mtables, ptables, bound, last) {
797
841
  new_indices[2] = mtables[2][m][indices[2]];
798
842
  let r = 1;
799
843
  while (indices.some((_, i) => indices[i] != new_indices[i])) {
800
- let subpath_gen = phase1_ida_search_gen(new_indices, mtables, ptables, bound - 1, m);
844
+ let subpath_gen = phase1_ida_search_gen(
845
+ new_indices,
846
+ mtables,
847
+ ptables,
848
+ bound - 1,
849
+ m
850
+ );
801
851
  while (true) {
802
852
  let { value: subpath, done } = subpath_gen.next();
803
853
  if (done)
@@ -832,14 +882,20 @@ function index_phase2(facelets) {
832
882
  let ep = Array(8).fill().map((_, i) => get_edge_piece(facelets, i));
833
883
  let edge_coord = ep.indexOf(5) + 8 * ep.indexOf(6) + 8 ** 2 * ep.indexOf(7);
834
884
  let corners = Array(5).fill().map((_, i) => get_corner_piece(facelets, i));
835
- let cp_inverse_full = invert_permutation(corners.map(([p, o]) => p + 5 * o).concat(corners.map(([p, o]) => p + 5 * (o ^ 1))));
885
+ let cp_inverse_full = invert_permutation(
886
+ corners.map(([p, o]) => p + 5 * o).concat(corners.map(([p, o]) => p + 5 * (o ^ 1)))
887
+ );
836
888
  let cp_inverse = cp_inverse_full.slice(0, 5).map((x) => x % 5);
837
889
  let co_inverse = cp_inverse_full.slice(0, 5).map((x) => x / 5 | 0);
838
890
  let corner_coord = evenpermutation_to_index(cp_inverse) * 8 + (co_inverse[0] ^ co_inverse[2]) + 2 * (co_inverse[0] ^ co_inverse[3]) + 4 * co_inverse[4];
839
- let [a_coord, b_coord] = [centreA_piece_facelets, centreB_piece_facelets].map((facelet_indices) => {
840
- let arr = compose(facelet_indices, phase2_centre_indices).map((x) => phase2_centre_colour_map[facelets[x]]);
841
- return cti[arr.reduce((acc, x, j) => acc | x << 2 * j, 0)];
842
- });
891
+ let [a_coord, b_coord] = [centreA_piece_facelets, centreB_piece_facelets].map(
892
+ (facelet_indices) => {
893
+ let arr = compose(facelet_indices, phase2_centre_indices).map(
894
+ (x) => phase2_centre_colour_map[facelets[x]]
895
+ );
896
+ return cti[arr.reduce((acc, x, j) => acc | x << 2 * j, 0)];
897
+ }
898
+ );
843
899
  generate_phase2_edge_mtable();
844
900
  generate_phase2_corner_mtable_compact();
845
901
  return [
@@ -855,8 +911,22 @@ function generate_phase2_centre_mtables() {
855
911
  if (cached_mtables.phase2_centre) {
856
912
  return cached_mtables.phase2_centre;
857
913
  }
858
- let a = generate_mtable_comb4_generic(10, 5, 3, 2, 0, move_permutations.slice(0, 4).map((x) => reduce_permutation(x.ap, phase2_keep)));
859
- let b = generate_mtable_comb4_generic(10, 5, 3, 2, 0, move_permutations.slice(0, 4).map((x) => reduce_permutation(x.bp, phase2_keep)));
914
+ let a = generate_mtable_comb4_generic(
915
+ 10,
916
+ 5,
917
+ 3,
918
+ 2,
919
+ 0,
920
+ move_permutations.slice(0, 4).map((x) => reduce_permutation(x.ap, phase2_keep))
921
+ );
922
+ let b = generate_mtable_comb4_generic(
923
+ 10,
924
+ 5,
925
+ 3,
926
+ 2,
927
+ 0,
928
+ move_permutations.slice(0, 4).map((x) => reduce_permutation(x.bp, phase2_keep))
929
+ );
860
930
  return cached_mtables.phase2_centre = [a, b];
861
931
  }
862
932
  var phase2_edge_reduction_map;
@@ -864,7 +934,9 @@ function generate_phase2_edge_mtable() {
864
934
  if (cached_mtables.phase2_edge) {
865
935
  return cached_mtables.phase2_edge;
866
936
  }
867
- let e = generate_mtable_single_generic(move_permutations.slice(0, 4).map((x) => x.ep.slice(0, 8)));
937
+ let e = generate_mtable_single_generic(
938
+ move_permutations.slice(0, 4).map((x) => x.ep.slice(0, 8))
939
+ );
868
940
  let eee = combine_mtables(e, combine_mtables(e, e));
869
941
  let eee_trimmed;
870
942
  [eee_trimmed, phase2_edge_reduction_map] = trim_unreachable(eee, 501);
@@ -916,7 +988,10 @@ function generate_phase2_corner_mtable_compact() {
916
988
  if (cached_mtables.phase2_corner_compact) {
917
989
  return cached_mtables.phase2_corner_compact;
918
990
  }
919
- [cached_mtables.phase2_corner_compact, phase2_corner_reduction_map] = reduce_to_quotient(generate_phase2_corner_mtable(), phase2_corner_goal_states());
991
+ [cached_mtables.phase2_corner_compact, phase2_corner_reduction_map] = reduce_to_quotient(
992
+ generate_phase2_corner_mtable(),
993
+ phase2_corner_goal_states()
994
+ );
920
995
  return cached_mtables.phase2_corner_compact;
921
996
  }
922
997
  function generate_phase2_ce_mtable() {
@@ -933,7 +1008,11 @@ function generate_phase2_ce_mirror_map() {
933
1008
  return phase2_ce_mirror_map;
934
1009
  }
935
1010
  const ce_solved = index_phase2(solved_state)[2];
936
- return phase2_ce_mirror_map = generate_mirrored_coordinate_table(generate_phase2_ce_mtable(), ce_solved, ce_solved);
1011
+ return phase2_ce_mirror_map = generate_mirrored_coordinate_table(
1012
+ generate_phase2_ce_mtable(),
1013
+ ce_solved,
1014
+ ce_solved
1015
+ );
937
1016
  }
938
1017
  function phase2_centre_goal_states() {
939
1018
  let [itc, cti] = generate_comb4_lookup_tables(10, 5, 3, 2, 0);
@@ -1005,14 +1084,31 @@ function* phase2_ida_solve_gen(indices, moves_left) {
1005
1084
  let mirror_map = generate_phase2_ce_mirror_map();
1006
1085
  let [a, b, ce] = indices;
1007
1086
  let ce_mirror = mirror_map[ce];
1008
- let bound = Math.max(ptable_ace[a + 2520 * ce], ptable_ace[b + 2520 * ce_mirror]);
1087
+ let bound = Math.max(
1088
+ ptable_ace[a + 2520 * ce],
1089
+ ptable_ace[b + 2520 * ce_mirror]
1090
+ );
1009
1091
  while (bound <= moves_left) {
1010
- yield* phase2_ida_search_gen(a, b, ce, mtable_a, mtable_b, mtable_ce, ptable_ace, mirror_map, bound, -1);
1092
+ yield* phase2_ida_search_gen(
1093
+ a,
1094
+ b,
1095
+ ce,
1096
+ mtable_a,
1097
+ mtable_b,
1098
+ mtable_ce,
1099
+ ptable_ace,
1100
+ mirror_map,
1101
+ bound,
1102
+ -1
1103
+ );
1011
1104
  bound++;
1012
1105
  }
1013
1106
  }
1014
1107
  function* phase2_ida_search_gen(a, b, ce, mtable_a, mtable_b, mtable_ce, ptable_ace, mirror_map, bound, last) {
1015
- let h = Math.max(ptable_ace[a + 2520 * ce], ptable_ace[b + 2520 * mirror_map[ce]]);
1108
+ let h = Math.max(
1109
+ ptable_ace[a + 2520 * ce],
1110
+ ptable_ace[b + 2520 * mirror_map[ce]]
1111
+ );
1016
1112
  if (h > bound) {
1017
1113
  return;
1018
1114
  }
@@ -1030,7 +1126,18 @@ function* phase2_ida_search_gen(a, b, ce, mtable_a, mtable_b, mtable_ce, ptable_
1030
1126
  new_a = mtable_a[m][new_a];
1031
1127
  new_b = mtable_b[m][new_b];
1032
1128
  new_ce = mtable_ce[m][new_ce];
1033
- let subpath_gen = phase2_ida_search_gen(new_a, new_b, new_ce, mtable_a, mtable_b, mtable_ce, ptable_ace, mirror_map, bound - 1, m);
1129
+ let subpath_gen = phase2_ida_search_gen(
1130
+ new_a,
1131
+ new_b,
1132
+ new_ce,
1133
+ mtable_a,
1134
+ mtable_b,
1135
+ mtable_ce,
1136
+ ptable_ace,
1137
+ mirror_map,
1138
+ bound - 1,
1139
+ m
1140
+ );
1034
1141
  while (true) {
1035
1142
  let { value: subpath, done } = subpath_gen.next();
1036
1143
  if (done)
@@ -1209,10 +1316,16 @@ var phase3_2gen_move_seqs = [
1209
1316
  [7, 2]
1210
1317
  ]
1211
1318
  ];
1212
- phase3_2gen_move_seqs = phase3_2gen_move_seqs.concat(phase3_2gen_move_seqs.map((seq) => invert_move_sequence(seq)));
1319
+ phase3_2gen_move_seqs = phase3_2gen_move_seqs.concat(
1320
+ phase3_2gen_move_seqs.map((seq) => invert_move_sequence(seq))
1321
+ );
1213
1322
  var phase3_2gen_nmoves = phase3_2gen_move_seqs.length;
1214
- var phase3_2gen_facelet_permutations = phase3_2gen_move_seqs.map((seq) => apply_move_sequence(permutation_from_cycles([], 72), seq));
1215
- var phase3_2gen_piece_permutations = phase3_2gen_facelet_permutations.map(convert_move_to_permutations);
1323
+ var phase3_2gen_facelet_permutations = phase3_2gen_move_seqs.map(
1324
+ (seq) => apply_move_sequence(permutation_from_cycles([], 72), seq)
1325
+ );
1326
+ var phase3_2gen_piece_permutations = phase3_2gen_facelet_permutations.map(
1327
+ convert_move_to_permutations
1328
+ );
1216
1329
  var phase3_2gen_move_orders = phase3_2gen_facelet_permutations.map(permutation_order);
1217
1330
  function index_phase3_2gen(facelets) {
1218
1331
  let [itc, cti] = generate_comb4_lookup_tables(7, 3, 2, 0, 2);
@@ -1220,10 +1333,14 @@ function index_phase3_2gen(facelets) {
1220
1333
  let edge_coord = evenpermutation_to_index(ep);
1221
1334
  let corners = Array(4).fill().map((_, i) => get_corner_piece(facelets, i));
1222
1335
  let corner_coord = evenpermutation_to_index(corners.map((x) => x[0])) * 2 + corners.find((x) => x[0] === 0)[1];
1223
- let [a_coord, b_coord] = [centreA_piece_facelets, centreB_piece_facelets].map((facelet_indices) => {
1224
- let arr = compose(facelet_indices, phase3_2gen_centre_indices).map((x) => facelets[x] % 4);
1225
- return cti[arr.reduce((acc, x, j) => acc | x << 2 * j, 0)];
1226
- });
1336
+ let [a_coord, b_coord] = [centreA_piece_facelets, centreB_piece_facelets].map(
1337
+ (facelet_indices) => {
1338
+ let arr = compose(facelet_indices, phase3_2gen_centre_indices).map(
1339
+ (x) => facelets[x] % 4
1340
+ );
1341
+ return cti[arr.reduce((acc, x, j) => acc | x << 2 * j, 0)];
1342
+ }
1343
+ );
1227
1344
  return [a_coord + 210 * b_coord, corner_coord + 24 * edge_coord];
1228
1345
  }
1229
1346
  function generate_phase3_2gen_edge_mtable() {
@@ -1232,7 +1349,9 @@ function generate_phase3_2gen_edge_mtable() {
1232
1349
  }
1233
1350
  const HALFFACT5 = factorial(5) / 2;
1234
1351
  let mtable = Array(phase3_2gen_nmoves).fill().map(() => new Uint32Array(HALFFACT5));
1235
- let permutations = phase3_2gen_piece_permutations.map((x) => x.ep.slice(0, 5));
1352
+ let permutations = phase3_2gen_piece_permutations.map(
1353
+ (x) => x.ep.slice(0, 5)
1354
+ );
1236
1355
  for (let i = 0; i < HALFFACT5; i++) {
1237
1356
  let p = index_to_evenpermutation(i, 5);
1238
1357
  for (let m = 0; m < phase3_2gen_nmoves; m++) {
@@ -1262,7 +1381,9 @@ function generate_phase3_2gen_corner_mtable() {
1262
1381
  false
1263
1382
  ];
1264
1383
  let mtable = Array(phase3_2gen_nmoves).fill().map(() => new Uint32Array(N));
1265
- let permutations = phase3_2gen_piece_permutations.map((x) => reduce_permutation(x.cp, keep).slice(0, 4));
1384
+ let permutations = phase3_2gen_piece_permutations.map(
1385
+ (x) => reduce_permutation(x.cp, keep).slice(0, 4)
1386
+ );
1266
1387
  for (let i = 0; i < N; i += 2) {
1267
1388
  let p = index_to_evenpermutation(i >> 1, 4);
1268
1389
  let cp = p.concat(p.map((x) => x + 4));
@@ -1280,17 +1401,41 @@ function generate_phase3_2gen_corneredge_mtable() {
1280
1401
  if (cached_mtables.phase3_2gen_corneredge) {
1281
1402
  return cached_mtables.phase3_2gen_corneredge;
1282
1403
  }
1283
- return cached_mtables.phase3_2gen_corneredge = combine_mtables(generate_phase3_2gen_corner_mtable(), generate_phase3_2gen_edge_mtable());
1404
+ return cached_mtables.phase3_2gen_corneredge = combine_mtables(
1405
+ generate_phase3_2gen_corner_mtable(),
1406
+ generate_phase3_2gen_edge_mtable()
1407
+ );
1284
1408
  }
1285
1409
  function generate_phase3_2gen_centre_mtable() {
1286
1410
  if (cached_mtables.phase3_2gen_centre) {
1287
1411
  return cached_mtables.phase3_2gen_centre;
1288
1412
  }
1289
- let mtable_a = generate_mtable_comb4_generic(7, 3, 2, 0, 2, phase3_2gen_piece_permutations.map((x) => reduce_permutation(x.ap, phase3_2gen_keep)));
1290
- let mtable_b = generate_mtable_comb4_generic(7, 3, 2, 0, 2, phase3_2gen_piece_permutations.map((x) => reduce_permutation(x.bp, phase3_2gen_keep)));
1413
+ let mtable_a = generate_mtable_comb4_generic(
1414
+ 7,
1415
+ 3,
1416
+ 2,
1417
+ 0,
1418
+ 2,
1419
+ phase3_2gen_piece_permutations.map(
1420
+ (x) => reduce_permutation(x.ap, phase3_2gen_keep)
1421
+ )
1422
+ );
1423
+ let mtable_b = generate_mtable_comb4_generic(
1424
+ 7,
1425
+ 3,
1426
+ 2,
1427
+ 0,
1428
+ 2,
1429
+ phase3_2gen_piece_permutations.map(
1430
+ (x) => reduce_permutation(x.bp, phase3_2gen_keep)
1431
+ )
1432
+ );
1291
1433
  cached_mtables.phase3_2gen_centreA = mtable_a;
1292
1434
  cached_mtables.phase3_2gen_centreB = mtable_b;
1293
- return cached_mtables.phase3_2gen_centre = combine_mtables(mtable_a, mtable_b);
1435
+ return cached_mtables.phase3_2gen_centre = combine_mtables(
1436
+ mtable_a,
1437
+ mtable_b
1438
+ );
1294
1439
  }
1295
1440
  var phase3_2gen_ace_table;
1296
1441
  function generate_phase3_2gen_ace_table() {
@@ -1342,7 +1487,11 @@ function generate_phase3_2gen_ce_mirror_map() {
1342
1487
  }
1343
1488
  const mtable_ce = generate_phase3_2gen_corneredge_mtable().slice(0, 2);
1344
1489
  const solved_indices = index_phase3_2gen(solved_state);
1345
- return phase3_2gen_ce_mirror_map = generate_mirrored_coordinate_table(mtable_ce, solved_indices[1], solved_indices[1]);
1490
+ return phase3_2gen_ce_mirror_map = generate_mirrored_coordinate_table(
1491
+ mtable_ce,
1492
+ solved_indices[1],
1493
+ solved_indices[1]
1494
+ );
1346
1495
  }
1347
1496
  function solve_phase3_2gen(facelets, indices = index_phase3_2gen(facelets)) {
1348
1497
  let [ab, ce] = indices;
@@ -1355,7 +1504,17 @@ function solve_phase3_2gen(facelets, indices = index_phase3_2gen(facelets)) {
1355
1504
  let mirror_map_ce = generate_phase3_2gen_ce_mirror_map();
1356
1505
  let bound = 0;
1357
1506
  while (true) {
1358
- let gen = solve_phase3_2gen_ida(a, b, ce, mtable_a, mtable_b, mtable_ce, ace_table, mirror_map_ce, bound);
1507
+ let gen = solve_phase3_2gen_ida(
1508
+ a,
1509
+ b,
1510
+ ce,
1511
+ mtable_a,
1512
+ mtable_b,
1513
+ mtable_ce,
1514
+ ace_table,
1515
+ mirror_map_ce,
1516
+ bound
1517
+ );
1359
1518
  for (let solution of gen) {
1360
1519
  return solution.map((m) => phase3_2gen_move_seqs[m]).flat();
1361
1520
  }
@@ -1375,7 +1534,17 @@ function solve_phase3_2gen_readable(facelets, indices = index_phase3_2gen(facele
1375
1534
  let best_score = Infinity;
1376
1535
  let best_solution;
1377
1536
  for (let bound = initial; bound <= initial + 0; bound++) {
1378
- let gen = solve_phase3_2gen_ida(a, b, ce, mtable_a, mtable_b, mtable_ce, ace_table, mirror_map_ce, bound);
1537
+ let gen = solve_phase3_2gen_ida(
1538
+ a,
1539
+ b,
1540
+ ce,
1541
+ mtable_a,
1542
+ mtable_b,
1543
+ mtable_ce,
1544
+ ace_table,
1545
+ mirror_map_ce,
1546
+ bound
1547
+ );
1379
1548
  for (let solution of gen) {
1380
1549
  let expanded = solution.map((m) => phase3_2gen_move_seqs[m]).flat();
1381
1550
  let simplified = simplify_move_sequence(expanded);
@@ -1443,7 +1612,18 @@ function* solve_phase3_2gen_ida(a, b, ce, mtable_a, mtable_b, mtable_ce, ace_tab
1443
1612
  if (new_bound < 0) {
1444
1613
  continue;
1445
1614
  }
1446
- let subpath_gen = solve_phase3_2gen_ida(new_a, new_b, new_ce, mtable_a, mtable_b, mtable_ce, ace_table, mirror_map_ce, new_bound, m);
1615
+ let subpath_gen = solve_phase3_2gen_ida(
1616
+ new_a,
1617
+ new_b,
1618
+ new_ce,
1619
+ mtable_a,
1620
+ mtable_b,
1621
+ mtable_ce,
1622
+ ace_table,
1623
+ mirror_map_ce,
1624
+ new_bound,
1625
+ m
1626
+ );
1447
1627
  while (true) {
1448
1628
  let { value: subpath, done } = subpath_gen.next();
1449
1629
  if (done) {
@@ -1499,7 +1679,9 @@ function solve_phase2_and_phase3_readable(facelets, phase2_attempts = 20, cap =
1499
1679
  let { value, done } = gen.next();
1500
1680
  if (!done) {
1501
1681
  let intermediate_facelets = apply_move_sequence(facelets, value);
1502
- let solution = simplify_move_sequence(value.concat(solve_phase3_2gen_readable(intermediate_facelets)));
1682
+ let solution = simplify_move_sequence(
1683
+ value.concat(solve_phase3_2gen_readable(intermediate_facelets))
1684
+ );
1503
1685
  let score = grade_readability(solution);
1504
1686
  if (score <= cap) {
1505
1687
  return solution;
@@ -1513,7 +1695,9 @@ function solve_phase2_and_phase3_readable(facelets, phase2_attempts = 20, cap =
1513
1695
  let { value, done } = gen_t2.next();
1514
1696
  if (!done) {
1515
1697
  let intermediate_facelets = apply_move_sequence(facelets_t2, value);
1516
- let solution = simplify_move_sequence(value.concat(solve_phase3_2gen_readable(intermediate_facelets)));
1698
+ let solution = simplify_move_sequence(
1699
+ value.concat(solve_phase3_2gen_readable(intermediate_facelets))
1700
+ );
1517
1701
  solution = solution.map(([m, r]) => [m ^ 2, r]);
1518
1702
  let score = grade_readability(solution);
1519
1703
  if (score <= cap) {
@@ -1534,4 +1718,4 @@ async function randomFTOScrambleString() {
1534
1718
  export {
1535
1719
  randomFTOScrambleString
1536
1720
  };
1537
- //# sourceMappingURL=search-dynamic-solve-fto-O6UXF7EC.js.map
1721
+ //# sourceMappingURL=search-dynamic-solve-fto-4LI23P6K.js.map