aboutsummaryrefslogtreecommitdiff
path: root/src/cube_routines.h
diff options
context:
space:
mode:
authorSebastiano Tronto <sebastiano@tronto.net>2024-05-25 11:50:16 +0200
committerSebastiano Tronto <sebastiano@tronto.net>2024-05-25 11:50:16 +0200
commit43020af69d6932c7af0bc53b59c492775835a14e (patch)
treebf6d07a6ff2b5f37734fb1d1311a7468ad5acce9 /src/cube_routines.h
parent0ebba869512abc8e37e461e7587f686fe7c91c6c (diff)
downloadnissy-core-43020af69d6932c7af0bc53b59c492775835a14e.tar.gz
nissy-core-43020af69d6932c7af0bc53b59c492775835a14e.zip
Small performance improvement in h48 coordinate / transform
Diffstat (limited to 'src/cube_routines.h')
-rw-r--r--src/cube_routines.h117
1 files changed, 6 insertions, 111 deletions
diff --git a/src/cube_routines.h b/src/cube_routines.h
index b1f8eac..1585e67 100644
--- a/src/cube_routines.h
+++ b/src/cube_routines.h
@@ -1,11 +1,5 @@
1#define _move(M, c) compose_fast(c, _move_cube_ ## M) 1#define _move(M, c) compose_fast(c, _move_cube_ ## M)
2#define _premove(M, c) compose_fast(_move_cube_ ## M, c) 2#define _premove(M, c) compose_fast(_move_cube_ ## M, c)
3#define _trans_rotation(T, c) \
4 compose_fast(compose_fast(_trans_cube_ ## T, c), \
5 _trans_cube_ ## T ## _inverse)
6#define _trans_mirrored(T, c) \
7 invertco_fast(compose_fast(compose_fast(_trans_cube_ ## T, c), \
8 _trans_cube_ ## T ## _inverse))
9 3
10_static int permsign(uint8_t *, int); 4_static int permsign(uint8_t *, int);
11_static uint8_t readco(const char *); 5_static uint8_t readco(const char *);
@@ -24,6 +18,8 @@ _static uint8_t readtrans(const char *);
24_static int writemoves(uint8_t *, int, char *); 18_static int writemoves(uint8_t *, int, char *);
25_static void writetrans(uint8_t, char *); 19_static void writetrans(uint8_t, char *);
26_static cube_fast_t move(cube_fast_t, uint8_t); 20_static cube_fast_t move(cube_fast_t, uint8_t);
21_static cube_fast_t transform_edges(cube_fast_t, uint8_t);
22_static cube_fast_t transform_corners(cube_fast_t, uint8_t);
27_static cube_fast_t transform(cube_fast_t, uint8_t); 23_static cube_fast_t transform(cube_fast_t, uint8_t);
28 24
29cube_t 25cube_t
@@ -623,108 +619,7 @@ move(cube_fast_t c, uint8_t m)
623 } 619 }
624} 620}
625 621
626_static cube_fast_t 622/*
627transform(cube_fast_t c, uint8_t t) 623TODO transform is now relegated to a separated file because it is too long.
628{ 624It would be nice to make it shorter without loosing performance.
629 switch (t) { 625*/
630 case _trans_UFr:
631 return _trans_rotation(UFr, c);
632 case _trans_ULr:
633 return _trans_rotation(ULr, c);
634 case _trans_UBr:
635 return _trans_rotation(UBr, c);
636 case _trans_URr:
637 return _trans_rotation(URr, c);
638 case _trans_DFr:
639 return _trans_rotation(DFr, c);
640 case _trans_DLr:
641 return _trans_rotation(DLr, c);
642 case _trans_DBr:
643 return _trans_rotation(DBr, c);
644 case _trans_DRr:
645 return _trans_rotation(DRr, c);
646 case _trans_RUr:
647 return _trans_rotation(RUr, c);
648 case _trans_RFr:
649 return _trans_rotation(RFr, c);
650 case _trans_RDr:
651 return _trans_rotation(RDr, c);
652 case _trans_RBr:
653 return _trans_rotation(RBr, c);
654 case _trans_LUr:
655 return _trans_rotation(LUr, c);
656 case _trans_LFr:
657 return _trans_rotation(LFr, c);
658 case _trans_LDr:
659 return _trans_rotation(LDr, c);
660 case _trans_LBr:
661 return _trans_rotation(LBr, c);
662 case _trans_FUr:
663 return _trans_rotation(FUr, c);
664 case _trans_FRr:
665 return _trans_rotation(FRr, c);
666 case _trans_FDr:
667 return _trans_rotation(FDr, c);
668 case _trans_FLr:
669 return _trans_rotation(FLr, c);
670 case _trans_BUr:
671 return _trans_rotation(BUr, c);
672 case _trans_BRr:
673 return _trans_rotation(BRr, c);
674 case _trans_BDr:
675 return _trans_rotation(BDr, c);
676 case _trans_BLr:
677 return _trans_rotation(BLr, c);
678 case _trans_UFm:
679 return _trans_mirrored(UFm, c);
680 case _trans_ULm:
681 return _trans_mirrored(ULm, c);
682 case _trans_UBm:
683 return _trans_mirrored(UBm, c);
684 case _trans_URm:
685 return _trans_mirrored(URm, c);
686 case _trans_DFm:
687 return _trans_mirrored(DFm, c);
688 case _trans_DLm:
689 return _trans_mirrored(DLm, c);
690 case _trans_DBm:
691 return _trans_mirrored(DBm, c);
692 case _trans_DRm:
693 return _trans_mirrored(DRm, c);
694 case _trans_RUm:
695 return _trans_mirrored(RUm, c);
696 case _trans_RFm:
697 return _trans_mirrored(RFm, c);
698 case _trans_RDm:
699 return _trans_mirrored(RDm, c);
700 case _trans_RBm:
701 return _trans_mirrored(RBm, c);
702 case _trans_LUm:
703 return _trans_mirrored(LUm, c);
704 case _trans_LFm:
705 return _trans_mirrored(LFm, c);
706 case _trans_LDm:
707 return _trans_mirrored(LDm, c);
708 case _trans_LBm:
709 return _trans_mirrored(LBm, c);
710 case _trans_FUm:
711 return _trans_mirrored(FUm, c);
712 case _trans_FRm:
713 return _trans_mirrored(FRm, c);
714 case _trans_FDm:
715 return _trans_mirrored(FDm, c);
716 case _trans_FLm:
717 return _trans_mirrored(FLm, c);
718 case _trans_BUm:
719 return _trans_mirrored(BUm, c);
720 case _trans_BRm:
721 return _trans_mirrored(BRm, c);
722 case _trans_BDm:
723 return _trans_mirrored(BDm, c);
724 case _trans_BLm:
725 return _trans_mirrored(BLm, c);
726 default:
727 DBG_LOG("transform error, unknown transformation\n");
728 return zero_fast;
729 }
730}

Generated with cgit - Back to sebastiano.tronto.net