|
@@ -8,13 +8,7 @@
|
|
|
|
|
|
using namespace std;
|
|
using namespace std;
|
|
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-int main(int argc,char** argv){
|
|
|
|
- Results res;
|
|
|
|
- clear_results(res);
|
|
|
|
- // Compute the Forest
|
|
|
|
- list<Semigroup> forest;
|
|
|
|
|
|
+void init_parallelize(list<Semigroup>& forest,Results& res){
|
|
Semigroup O;
|
|
Semigroup O;
|
|
init_full_N(O);
|
|
init_full_N(O);
|
|
for(size_t g=0;g<MAX_GENUS;++g){
|
|
for(size_t g=0;g<MAX_GENUS;++g){
|
|
@@ -26,11 +20,27 @@ int main(int argc,char** argv){
|
|
it.move_next();
|
|
it.move_next();
|
|
Semigroup Onext=remove_generator(O,it.get_gen(),pos++);
|
|
Semigroup Onext=remove_generator(O,it.get_gen(),pos++);
|
|
while(it.move_next()){
|
|
while(it.move_next()){
|
|
- forest.push_back(remove_generator(O,it.get_gen(),pos++));
|
|
|
|
|
|
+ Semigroup son=remove_generator(O,it.get_gen(),pos++);
|
|
|
|
+ if(not cut(son)){
|
|
|
|
+ treat(son,res);
|
|
|
|
+ auto it2=generator_iter<CHILDREN>(son);
|
|
|
|
+ ind_t pos2=0;
|
|
|
|
+ while(it2.move_next()){
|
|
|
|
+ forest.push_back(remove_generator(son,it2.get_gen(),pos2++));
|
|
|
|
+ }
|
|
|
|
+ }
|
|
}
|
|
}
|
|
O=Onext;
|
|
O=Onext;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
+ if(not cut(O)) treat(O,res);
|
|
|
|
+}
|
|
|
|
+
|
|
|
|
+int main(int argc,char** argv){
|
|
|
|
+ Results res;
|
|
|
|
+ clear_results(res);
|
|
|
|
+ list<Semigroup> forest;
|
|
|
|
+ init_parallelize(forest,res);
|
|
// Set tasks
|
|
// Set tasks
|
|
size_t nb_tasks=forest.size();
|
|
size_t nb_tasks=forest.size();
|
|
Task* tasks=new Task[nb_tasks];
|
|
Task* tasks=new Task[nb_tasks];
|
|
@@ -84,6 +94,6 @@ int main(int argc,char** argv){
|
|
}
|
|
}
|
|
}
|
|
}
|
|
for(size_t g=0;g<=MAX_GENUS;++g){
|
|
for(size_t g=0;g<=MAX_GENUS;++g){
|
|
- cout<<g<<","<<res.n1[g]<<","<<res.n2[g]<<endl;
|
|
|
|
|
|
+ cout<<g<<","<<res.n[g]<<endl;
|
|
}
|
|
}
|
|
}
|
|
}
|