1234567891011121314151617181920212223 |
- #ifndef TREEWALK_HPP
- #define TREEWALK_HPP
- #include "semigroup.hpp"
- #include "stack.hpp"
- bool cut(const Semigroup& m);
- void treat(const Semigroup& m);
- void walk(Stack& stack,size_t* res);
- void signal_checkpoint_handler(int signum);
- inline bool
- cut(const Semigroup& m){
- if(3*m.left_primitive>=m.min) return true;
- return false;
- }
- inline bool is_special(const Semigroup& S){
- ind_t c=S.conductor;
- ind_t m=S.min;
- ind_t x=c+(m-1)-c%m;
- return S.decs[x]==1;
- }
- #endif
|