point generation working; still needs broken into functions though.

This commit is contained in:
2020-01-04 15:01:33 -05:00
parent 5026daefec
commit 624edb3bbb
6 changed files with 130 additions and 11 deletions

View File

@@ -26,5 +26,7 @@ namespace tc {
[[nodiscard]] int get(int coset, int gen) const;
[[nodiscard]] int get(int idx) const;
[[nodiscard]] int size() const;
};
}

View File

@@ -21,6 +21,8 @@ namespace tc {
void setmult(Rel rel);
[[nodiscard]] Rel rel(int a, int b) const;
[[nodiscard]] std::vector<Rel> get_rels() const;
[[nodiscard]] Group product(const Group &other) const;

View File

@@ -38,4 +38,7 @@ namespace tc {
return data[idx];
}
int Cosets::size() const {
return len;
}
}

View File

@@ -11,18 +11,17 @@ namespace tc {
}
for (Rel rel : rels) {
if (rel.gens[0] < rel.gens[1])
_mults[rel.gens[0]][rel.gens[1]] = rel.mult;
else
_mults[rel.gens[1]][rel.gens[0]] = rel.mult;
setmult(rel);
}
}
void Group::setmult(Rel rel) {
if (rel.gens[0] < rel.gens[1])
_mults[rel.gens[0]][rel.gens[1]] = rel.mult;
else
_mults[rel.gens[1]][rel.gens[0]] = rel.mult;
_mults[rel.gens[0]][rel.gens[1]] = rel.mult;
_mults[rel.gens[1]][rel.gens[0]] = rel.mult;
}
Rel Group::rel(int a, int b) const {
return {a, b, _mults[a][b]};
}
std::vector<Rel> Group::get_rels() const {
@@ -75,7 +74,7 @@ namespace tc {
return g.power(p);
}
Group schlafli(const std::vector<int> &mults, const std::string& name) {
Group schlafli(const std::vector<int> &mults, const std::string &name) {
int ngens = (int) mults.size() + 1;
Group g(ngens, {}, name);