33 #ifndef MATRIXREFINEMENT1_H_ 34 #define MATRIXREFINEMENT1_H_ 36 #include <permlib/predicate/pointwise_stabilizer_predicate.h> 37 #include <permlib/search/partition/refinement.h> 47 template<
class PERM,
class MATRIX>
58 const MATRIX& m_matrix;
59 std::vector<std::list<unsigned long> > m_diagonalPartition;
62 template<
class PERM,
class MATRIX>
64 :
Refinement<PERM>(n, Default), m_matrix(matrix)
68 template<
class PERM,
class MATRIX>
70 BOOST_ASSERT( this->initialized() );
75 unsigned long cell = *cellPairIt;
78 unsigned long diagIndex = *cellPairIt;
79 if (pi.
intersect(m_diagonalPartition[diagIndex].begin(), m_diagonalPartition[diagIndex].end(), cell))
89 template<
class PERM,
class MATRIX>
91 m_diagonalPartition.resize(m_matrix.k());
92 for (
unsigned long i = 0; i < m_matrix.dimension(); ++i) {
93 m_diagonalPartition[m_matrix.at(i,i)].push_back(i);
96 bool foundIntersection =
false;
97 for (
unsigned int c = 0; c < pi.
cells(); ++c) {
99 for (
unsigned long i = 0; i < m_diagonalPartition.size(); ++i) {
100 if (pi.
intersect(m_diagonalPartition[i].begin(), m_diagonalPartition[i].end(), c)) {
102 foundIntersection =
true;
107 if (foundIntersection) {
119 #endif // -- MATRIXREFINEMENT1_H_ virtual unsigned int apply(Partition &pi) const
applies (left-)refinement to pi which is the original partition this refinement was initialized to ...
Definition: matrix_refinement1.h:69
base class for a -refinement which is used in an R-base and bound to an initial partition ...
Definition: refinement.h:53
partition
Definition: partition.h:48
MatrixRefinement1(unsigned long n, const MATRIX &matrix)
constructor
Definition: matrix_refinement1.h:63
unsigned long cells() const
number of cells in this partition
Definition: partition.h:157
virtual bool init(Partition &pi)
initializes refinement
Definition: matrix_refinement1.h:90
bool intersect(ForwardIterator begin, ForwardIterator end, unsigned int j)
intersects the j-th cell of this partition with a given set
Definition: partition.h:186
concrete -refinement for symmetric matrix automorphisms
Definition: matrix_refinement1.h:48
Definition: abstract_bsgs.h:49