33 #ifndef SETWISESTABILIZERPREDICATE_H_ 34 #define SETWISESTABILIZERPREDICATE_H_ 36 #include <permlib/predicate/subgroup_predicate.h> 38 #include <boost/foreach.hpp> 51 template<
class InputIterator>
55 virtual bool childRestriction(
const PERM &h,
unsigned int i,
unsigned long beta_i)
const;
56 virtual unsigned int limit()
const;
59 std::vector<unsigned long> m_delta;
67 template <
class InputIterator>
74 BOOST_FOREACH(
unsigned long delta_i, m_delta) {
75 if (std::find(m_delta.begin(), m_delta.end(), p / delta_i) == m_delta.end())
83 if (std::find(m_delta.begin(), m_delta.end(), h / beta_i) == m_delta.end())
90 return m_delta.size();
95 #endif // -- SETWISESTABILIZERPREDICATE_H_ virtual unsigned int limit() const
limit of recursion depth in backtrack search
Definition: setwise_stabilizer_predicate.h:89
predicate for the subgroup that stabilizes a given point set
Definition: setwise_stabilizer_predicate.h:44
SetwiseStabilizerPredicate(InputIterator begin, InputIterator end)
constructor
Definition: setwise_stabilizer_predicate.h:68
virtual bool childRestriction(const PERM &h, unsigned int i, unsigned long beta_i) const
checks if a given group element should not be followed in backtrack search
Definition: setwise_stabilizer_predicate.h:82
virtual bool operator()(const PERM &p) const
true iff group element fulfills predicate
Definition: setwise_stabilizer_predicate.h:73
abstract base class for subgroup (and coset) predicates
Definition: subgroup_predicate.h:45
Definition: abstract_bsgs.h:49