diff --git a/src/solve.cpp b/src/solve.cpp index 948eec2..0c144f0 100644 --- a/src/solve.cpp +++ b/src/solve.cpp @@ -73,7 +73,8 @@ namespace tc { } for (int g : sub_gens) { - cosets.put(g, 0); + if (g < ngens) + cosets.put(0, g, 0); } RelTables rel_tables(rels()); @@ -136,6 +137,11 @@ namespace tc { coset = fact_idx / ngens; gen = fact_idx % ngens; + if (target == coset) + for (int table_idx : gen_map[gen]) + if (target_row.lst_ptrs[table_idx] == nullptr) + target_row.gnrs[table_idx] = -1; + RelTablesRow &coset_row = *(rel_tables.rows[coset]); for (int table_idx : gen_map[gen]) { if (target_row.lst_ptrs[table_idx] == nullptr) { @@ -180,4 +186,4 @@ namespace tc { return cosets; } -} \ No newline at end of file +}