#ifndef CUT_HPP #define CUT_HPP #include "semigroup.hpp" bool cut(const Semigroup& S); bool cut_wilf_left_primitives(const Semigroup& S); inline bool cut(const Semigroup& S){ return false; // return cut_wilf_left_primitives(S); // return !is_special(S); } 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; } inline bool cut_wilf_left_primitives(const Semigroup& S){ return 3*S.left_primitive>=S.min; } #endif