forked from mirror/toddcox-faster
minor bugfixes
This commit is contained in:
@@ -115,10 +115,10 @@ namespace tc {
|
||||
};
|
||||
|
||||
struct SubGroup : public Group {
|
||||
const std::vector<int> gen_map;
|
||||
std::vector<int> gen_map;
|
||||
const Group &parent;
|
||||
|
||||
SubGroup(const Group &parent, const std::vector<int> &gen_map);
|
||||
SubGroup(const Group &parent, std::vector<int> gen_map);
|
||||
};
|
||||
|
||||
Group operator*(const Group &g, const Group &h);
|
||||
|
||||
@@ -136,8 +136,11 @@ namespace tc {
|
||||
return g;
|
||||
}
|
||||
|
||||
SubGroup::SubGroup(const Group &parent, const std::vector<int> &gen_map)
|
||||
: Group(gen_map.size()), parent(parent), gen_map(gen_map) {
|
||||
SubGroup::SubGroup(const Group &parent, std::vector<int> gen_map)
|
||||
: Group(gen_map.size()), parent(parent) {
|
||||
|
||||
std::sort(gen_map.begin(), gen_map.end());
|
||||
this->gen_map = gen_map;
|
||||
|
||||
for (size_t i = 0; i < gen_map.size(); ++i) {
|
||||
for (size_t j = 0; j < gen_map.size(); ++j) {
|
||||
|
||||
@@ -67,6 +67,11 @@ namespace tc {
|
||||
Cosets Group::solve(const std::vector<int> &sub_gens) const {
|
||||
Cosets cosets(ngens);
|
||||
cosets.add_row();
|
||||
|
||||
if (ngens == 0) {
|
||||
return cosets;
|
||||
}
|
||||
|
||||
for (int g : sub_gens) {
|
||||
cosets.put(g, 0);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user