split definitions and declarations, move to "tc" namespace

This commit is contained in:
2019-12-27 16:46:33 -05:00
parent 186ddc425c
commit 08aa3f5453
6 changed files with 233 additions and 204 deletions

View File

@@ -0,0 +1,37 @@
#pragma once
#include "groups.h"
#include <vector>
namespace tc {
struct Cosets {
int ngens;
std::vector<int> data;
int len;
Cosets(int ngens, const std::vector<int> &data);
void add_row();
void put(int coset, int gen, int target);
void put(int idx, int target);
[[nodiscard]] int get(int coset, int gen) const;
[[nodiscard]] int get(int idx) const;
};
struct RelTable {
int gens[2]{};
int mult;
std::vector<int *> lst_ptr;
std::vector<int> gen;
explicit RelTable(Mult m);
int add_row();
};
Cosets solve(const Group &g, const std::vector<int> &sub_gens = {});
}