results.hpp 720 B

123456789101112131415161718192021222324252627282930313233
  1. #ifndef RESULTS_HPP
  2. #define RESULTS_HPP
  3. #include "semigroup.hpp"
  4. struct Results{
  5. size_t n1[MAX_GENUS+1];
  6. size_t n2[MAX_GENUS+1];
  7. bool has_counter_example;
  8. Semigroup S_counter_example;
  9. };
  10. void clear_results(Results& R);
  11. void add_results(Results& Rdest,const Results& Rsrc);
  12. inline void clear_results(Results& R){
  13. R.has_counter_example=false;
  14. for(size_t g=0;g<=MAX_GENUS;++g){
  15. R.n1[g]=0;
  16. R.n2[g]=0;
  17. }
  18. }
  19. inline void add_results(Results& Rdest,const Results& Rsrc){
  20. if((not Rdest.has_counter_example) and Rsrc.has_counter_example){
  21. Rdest.S_counter_example=Rsrc.S_counter_example;
  22. }
  23. for(size_t g=0;g<=MAX_GENUS;++g){
  24. Rdest.n1[g]+=Rsrc.n1[g];
  25. Rdest.n2[g]+=Rsrc.n2[g];
  26. }
  27. }
  28. #endif