Add spanning tree path to cosets.

This commit is contained in:
2020-01-03 22:37:11 -05:00
parent f1c57b241f
commit 3c3cd69be7
4 changed files with 35 additions and 1 deletions

View File

@@ -7,11 +7,16 @@ namespace tc {
void Cosets::add_row() {
len++;
data.resize(data.size() + ngens, -1);
path.resize(path.size() + 1);
}
void Cosets::put(int coset, int gen, int target) {
data[coset * ngens + gen] = target;
data[target * ngens + gen] = coset;
if (path[target].coset == -1) {
path[target] = {coset, gen};
}
}
void Cosets::put(int idx, int target) {
@@ -19,6 +24,10 @@ namespace tc {
int gen = idx % ngens;
data[idx] = target;
data[target * ngens + gen] = coset;
if (path[target].coset == -1) {
path[target] = {coset, gen};
}
}
int Cosets::get(int coset, int gen) const {