diff --git a/cosets/include/coxeter.hpp b/cosets/include/coxeter.hpp index 33b6809..69379af 100644 --- a/cosets/include/coxeter.hpp +++ b/cosets/include/coxeter.hpp @@ -20,9 +20,9 @@ struct Mults { [[nodiscard]] std::vector relation(int a, int b) const; - [[nodiscard]] std::vector> relations(std::vector gens) const; + [[nodiscard]] std::vector> relations(const std::vector& gens) const; - [[nodiscard]] std::vector> irelations(Table *table, std::vector gens) const; + [[nodiscard]] std::vector> irelations(const Table *table, const std::vector &gens) const; }; struct Table { @@ -32,7 +32,7 @@ struct Table { std::vector> fwd; std::vector> rev; - explicit Table(std::vector gens, Mults mults); + explicit Table(const std::vector &gens, Mults mults); [[nodiscard]] int gen_index(int gen) const; diff --git a/cosets/src/main.cpp b/cosets/src/main.cpp index 95369e5..554eef1 100644 --- a/cosets/src/main.cpp +++ b/cosets/src/main.cpp @@ -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)); diff --git a/cosets/src/util/coxeter.cpp b/cosets/src/util/coxeter.cpp index 2921371..3431865 100644 --- a/cosets/src/util/coxeter.cpp +++ b/cosets/src/util/coxeter.cpp @@ -34,30 +34,30 @@ std::vector Mults::relation(int a, int b) const { return res; } -std::vector> Mults::relations(std::vector gens) const { +std::vector> Mults::relations(const std::vector &gens) const { std::vector> 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> Mults::irelations(Table *table, std::vector gens) const { +std::vector> Mults::irelations(const Table *table, const std::vector &gens) const { std::vector> rels = relations(gens); std::vector> 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 gens, const Mults mults) : gens(gens), mults(mults) { +Table::Table(const std::vector &gens, const Mults mults) : gens(gens), mults(mults) { add_row(); gen_inds = std::vector(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 Table::gen_index_each(std::vector rel) const { std::vector 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; } }