break apart into modules; add vendor dependencies; add OpenGL boilerplate to get started

This commit is contained in:
2020-01-04 01:30:19 -05:00
parent a8d9451502
commit d602837659
14 changed files with 93 additions and 2 deletions

41
tc/src/cosets.cpp Normal file
View File

@@ -0,0 +1,41 @@
#include "tc/cosets.h"
namespace tc {
Cosets::Cosets(int ngens) : ngens(ngens), len(0) {
}
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) {
int coset = idx / ngens;
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 {
return data[coset * ngens + gen];
}
int Cosets::get(int idx) const {
return data[idx];
}
}