From b02eec5d1a316c6a4bf9c4e484a8b4e892704e12 Mon Sep 17 00:00:00 2001 From: Jacob Date: Sat, 7 Dec 2019 17:57:45 -0500 Subject: [PATCH] Small updates --- cpu-opt/main.cpp | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/cpu-opt/main.cpp b/cpu-opt/main.cpp index f8ed6e3..21aa3fe 100644 --- a/cpu-opt/main.cpp +++ b/cpu-opt/main.cpp @@ -271,10 +271,6 @@ int add_coset(const Coxeter &cox, } -//#define __AVX2__ - -#ifndef __AVX2__ - /** * learn until it can't */ @@ -301,9 +297,13 @@ void learn(const Coxeter &cox, CosetTable &cosets, auto e_c = table.end_cosets[c]; auto i_c = table.init_cosets[c]; + int g_i = s_i & 1; + Gen g = gens[g_i]; while (s_i < e_i) { - const int lookup = cosets[s_c*ngens + gens[s_i&1]]; + const int lookup = cosets[g + s_c*ngens]; if (lookup < 0) break; + g_i = 1-g_i; + g = gens[g_i]; s_i++; s_c = lookup; @@ -318,9 +318,13 @@ void learn(const Coxeter &cox, CosetTable &cosets, table.start_inds[c] = s_i; table.start_cosets[c] = s_c; + g_i = e_i & 1; + g = gens[g_i]; while (s_i < e_i) { - const int lookup = cosets[e_c*ngens + gens[e_i&1]]; + const int lookup = cosets[g + e_c*ngens]; if (lookup < 0) break; + g_i = 1-g_i; + g = gens[g_i]; e_i--; e_c = lookup; @@ -352,10 +356,6 @@ void learn(const Coxeter &cox, CosetTable &cosets, } } -#else - -#endif - CosetTable solve_tc(const Coxeter &cox, const Gens &subgens) { CosetTable cosets(cox.ngens); std::vector reltables;