2#include "HD_BasicSequencing.h"
17 meta_ccsjjscc_inverted,
20 meta_unknowable_enigma,
33detecc_cccccc(
const base_type& now,
const base_type& last_last) ->
bool
36 return now == last_last;
41detecc_acca(
const base_type& a,
const base_type& b,
const base_type& c) ->
bool
44 return a == base_single_single && is_cc_tap(b) && c == base_single_single;
51detecc_sjjscc(
const base_type& last,
52 const base_type& last_last,
53 const base_type& last_last_last) ->
bool
56 if (!is_cc_tap(last_last_last)) {
67 return last == base_jump_single && last_last == base_single_jump;
73determine_meta_type(
const base_type& now,
74 const base_type& last,
75 const base_type& last_last,
76 const base_type& last_last_last,
77 const meta_type& last_mt) -> meta_type
80 if (is_cc_tap(now) && is_cc_tap(last_last)) {
82 if (detecc_cccccc(now, last_last)) {
100 if (detecc_acca(now, last, last_last)) {
105 if (is_cc_tap(now)) {
108 if (detecc_sjjscc(last, last_last, last_last_last)) {
110 if (now == last_last_last) {
112 return meta_ccsjjscc;
116 return meta_ccsjjscc_inverted;
123 if (last_mt == meta_enigma) {
124 return meta_meta_enigma;
128 if (last_mt == meta_meta_enigma) {
129 return meta_unknowable_enigma;