33 #ifndef SYMMETRIC_GROUP_TRANSVERSAL_H_
34 #define SYMMETRIC_GROUP_TRANSVERSAL_H_
36 #include <boost/iterator/counting_iterator.hpp>
55 PERM*
at(
unsigned long val)
const {
56 for (
unsigned int i=0; i<m_basePos; ++i) {
57 if ((symmetricGroup->B)[i] == val)
61 PERM* p =
new PERM(symmetricGroup->B.size());
62 p->setTransposition((symmetricGroup->B)[m_basePos],val);
67 unsigned int size()
const {
return symmetricGroup->n - m_basePos; }
69 boost::counting_iterator<unsigned int> begin()
const {
return boost::counting_iterator<unsigned int>(0); };
70 boost::counting_iterator<unsigned int> end()
const {
return boost::counting_iterator<unsigned int>(symmetricGroup->n-m_basePos ); };
73 unsigned int m_basePos;
78 #endif // SYMMETRIC_GROUP_TRANSVERSAL_H_