cleanup
This commit is contained in:
@@ -20,9 +20,9 @@ struct Mults {
|
||||
|
||||
[[nodiscard]] std::vector<int> relation(int a, int b) const;
|
||||
|
||||
[[nodiscard]] std::vector<std::vector<int>> relations(std::vector<int> gens) const;
|
||||
[[nodiscard]] std::vector<std::vector<int>> relations(const std::vector<int>& gens) const;
|
||||
|
||||
[[nodiscard]] std::vector<std::vector<int>> irelations(Table *table, std::vector<int> gens) const;
|
||||
[[nodiscard]] std::vector<std::vector<int>> irelations(const Table *table, const std::vector<int> &gens) const;
|
||||
};
|
||||
|
||||
struct Table {
|
||||
@@ -32,7 +32,7 @@ struct Table {
|
||||
std::vector<std::vector<int>> fwd;
|
||||
std::vector<std::vector<int>> rev;
|
||||
|
||||
explicit Table(std::vector<int> gens, Mults mults);
|
||||
explicit Table(const std::vector<int> &gens, Mults mults);
|
||||
|
||||
[[nodiscard]] int gen_index(int gen) const;
|
||||
|
||||
|
||||
@@ -52,9 +52,9 @@ public:
|
||||
u_view = glGetUniformLocation(program, "view");
|
||||
u_color = glGetUniformLocation(program, "color");
|
||||
|
||||
const Mults &mults = schlafli({5,3,3});
|
||||
// const glm::vec4 ident = center(mults);
|
||||
const glm::vec4 ident = identity(mults, {1,});
|
||||
const Mults &mults = schlafli({3, 4, 3});
|
||||
const glm::vec4 ident = center(mults);
|
||||
// const glm::vec4 ident = identity(mults, {10, .1, .1, .5});
|
||||
std::cout << "Dimension: " << mults.num_gens << std::endl;
|
||||
|
||||
std::cout << "Generation times: " << std::endl;
|
||||
@@ -168,8 +168,7 @@ public:
|
||||
0.0, c2, 0.0, s2,
|
||||
-s1, 0.0, c1, 0.0,
|
||||
0.0, -s2, 0.0, c2
|
||||
)
|
||||
;
|
||||
);
|
||||
|
||||
glUseProgram(program);
|
||||
glUniformMatrix4fv(u_proj, 1, false, glm::value_ptr(proj));
|
||||
|
||||
@@ -34,30 +34,30 @@ std::vector<int> Mults::relation(int a, int b) const {
|
||||
return res;
|
||||
}
|
||||
|
||||
std::vector<std::vector<int>> Mults::relations(std::vector<int> gens) const {
|
||||
std::vector<std::vector<int>> Mults::relations(const std::vector<int> &gens) const {
|
||||
std::vector<std::vector<int>> res{};
|
||||
for (int a = 0; a < gens.size(); ++a) {
|
||||
for (int b = a; b < gens.size(); ++b) {
|
||||
for (int a = 0; a < (int) gens.size(); ++a) {
|
||||
for (int b = a; b < (int) gens.size(); ++b) {
|
||||
res.push_back(relation(gens[a], gens[b]));
|
||||
}
|
||||
}
|
||||
return res;
|
||||
}
|
||||
|
||||
std::vector<std::vector<int>> Mults::irelations(Table *table, std::vector<int> gens) const {
|
||||
std::vector<std::vector<int>> Mults::irelations(const Table *table, const std::vector<int> &gens) const {
|
||||
std::vector<std::vector<int>> rels = relations(gens);
|
||||
std::vector<std::vector<int>> irels(rels.size());
|
||||
for (int i = 0; i < rels.size(); ++i) {
|
||||
for (int i = 0; i < (int) rels.size(); ++i) {
|
||||
irels[i] = table->gen_index_each(rels[i]);
|
||||
}
|
||||
return irels;
|
||||
}
|
||||
|
||||
Table::Table(const std::vector<int> gens, const Mults mults) : gens(gens), mults(mults) {
|
||||
Table::Table(const std::vector<int> &gens, const Mults mults) : gens(gens), mults(mults) {
|
||||
add_row();
|
||||
|
||||
gen_inds = std::vector<int>(gens[gens.size() - 1] + 1, -1);
|
||||
for (int i = 0; i < gens.size(); i++) {
|
||||
for (int i = 0; i <(int) gens.size(); i++) {
|
||||
gen_inds[gens[i]] = i;
|
||||
}
|
||||
}
|
||||
@@ -73,7 +73,7 @@ int Table::gen_index(int gen) const {
|
||||
|
||||
std::vector<int> Table::gen_index_each(std::vector<int> rel) const {
|
||||
std::vector<int> res(rel.size(), 0);
|
||||
for (int i = 0; i < rel.size(); ++i) {
|
||||
for (int i = 0; i < (int)rel.size(); ++i) {
|
||||
res[i] = gen_index(rel[i]);
|
||||
}
|
||||
return res;
|
||||
@@ -87,11 +87,11 @@ void Table::add_row() {
|
||||
|
||||
int Table::add_coset() {
|
||||
for (int from = 0; from < (int) size(); ++from) {
|
||||
for (int gen : gens) {
|
||||
if (get(from, gen) < 0) {
|
||||
for (int igen = 0; igen < (int) gens.size(); igen++) {
|
||||
if (iget(from, igen) < 0) {
|
||||
int to = (int) size();
|
||||
add_row();
|
||||
set(from, gen, to);
|
||||
iset(from, igen, to);
|
||||
return to;
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user