diff --git a/include/tc/complex.hpp b/include/tc/complex.hpp index 240f7f7..31f5d58 100644 --- a/include/tc/complex.hpp +++ b/include/tc/complex.hpp @@ -31,12 +31,6 @@ namespace tc { return combos; } - Symbol fan(const Symbol &prim, unsigned root) { - Symbol res(prim.size() + 1); - res << prim, root; - return res; - } - std::vector fan(const std::vector& prims, int root) { std::vector res; res.reserve(prims.size()); @@ -48,63 +42,12 @@ namespace tc { return res; } - void flip(Symbol &prim) { - if (prim.size() > 1) { - std::swap(prim[0], prim[1]); - } - } - - void apply(const tc::Cosets &table, unsigned int gen, Symbol &prim) { - for (auto &ind: prim) { - ind = table.get(ind, gen); - } - flip(prim); - } - void apply(const tc::Cosets &table, unsigned int gen, std::vector &prims) { for (auto &prim: prims) { - apply(table, gen, prim); - } - } - -/** - * Produce a list of all generators for the group context. The range [0..group.rank). - */ - std::vector generators(const tc::Group &context) { - std::vector g_gens(context.rank()); - std::iota(g_gens.begin(), g_gens.end(), 0); - return g_gens; - } - -/** - * Determine whether the orientation of the group sg_gens is reversed from the group g_gens within group context - */ - int get_parity( - const tc::Group &context, - const Symbol &g_gens, - const Symbol &sg_gens - ) { - if (g_gens.size() != sg_gens.size() + 1) return 0; - - const auto proper_sg_gens = recontext_gens(context.rank(), g_gens, sg_gens); - - int i = 0; - for (; i < sg_gens.size(); ++i) { - if (proper_sg_gens[i] != i) { - break; + for (auto &ind : prim) { + ind = table.get(ind, gen); } } - - return i & 1; - } - -/** - * Reverse the orientation of all primitives in this mesh. - */ - void flip(std::vector &prims) { - for (auto &prim: prims) { - flip(prim); - } } /** @@ -130,9 +73,6 @@ namespace tc { ind = map[ind]; } } - - if (get_parity(context, g_gens, sg_gens) == 1) - flip(prims); } /** @@ -164,7 +104,7 @@ namespace tc { const auto table = solve(context, g_gens, Symbol(0)); const auto path = solve(context, g_gens, sg_gens).path(); - auto _gens = generators(context); + auto _gens = context.gens; auto res = path.walk(base, _gens, [&table](auto from, auto &gen) { apply(table, gen, from);