permlib  0.2.9
Library for permutation computations
Public Types | Public Member Functions | Protected Member Functions | Protected Attributes | List of all members
permlib::partition::Refinement< PERM > Class Template Referenceabstract

base class for a $\mathcal P$-refinement which is used in an R-base and bound to an initial partition More...

#include <refinement.h>

Inheritance diagram for permlib::partition::Refinement< PERM >:
permlib::partition::BacktrackRefinement< PERM > permlib::partition::GroupRefinement< PERM, TRANS > permlib::partition::MatrixRefinement1< PERM, MATRIX > permlib::partition::MatrixRefinement2< PERM, MATRIX > permlib::partition::SetImageRefinement< PERM > permlib::partition::SetStabilizeRefinement< PERM >

Public Types

typedef boost::shared_ptr< Refinement< PERM > > RefinementPtr
 
typedef std::vector< RefinementPtr >::const_iterator RefinementPtrIterator
 

Public Member Functions

 Refinement (unsigned long n, RefinementType type)
 constructor
 
virtual ~Refinement ()
 destructor
 
bool initializeAndApply (Partition &pi)
 applies (left-)refinement to partition and initializes refinement for future use in R-base More...
 
virtual unsigned int apply (Partition &pi) const =0
 applies (left-)refinement to pi which is the original partition this refinement was initialized to More...
 
virtual unsigned int apply2 (Partition &pi, const PERM &t) const
 applies (right-)refinement to pi which is the image of the original partition this refinement was initialized to under t More...
 
void undo (Partition &pi, unsigned int count) const
 reverts the last count elementary intersections of partition pi
 
RefinementType type () const
 the type of this refinement
 
unsigned int alternatives () const
 number of sibling of this refinement in the search tree
 
RefinementPtrIterator backtrackBegin () const
 iterator to begin of refinement siblings in the search tree
 
RefinementPtrIterator backtrackEnd () const
 iterator to end of refinement siblings in the search tree
 
virtual bool init (Partition &pi)=0
 initializes refinement
 
virtual void sort (const BaseSorterByReference &, const Partition *)
 sorts siblings in the search tree
 

Protected Member Functions

bool initialized () const
 true iff refinement is initalized
 

Protected Attributes

unsigned long m_n
 length of partitions to work with
 
std::vector< RefinementPtr > m_backtrackRefinements
 refinement siblings in the search tree
 
std::list< int > m_cellPairs
 indices of elementary intersections to apply during refinement application
 

Detailed Description

template<class PERM>
class permlib::partition::Refinement< PERM >

base class for a $\mathcal P$-refinement which is used in an R-base and bound to an initial partition

Member Function Documentation

◆ apply()

template<class PERM>
virtual unsigned int permlib::partition::Refinement< PERM >::apply ( Partition pi) const
pure virtual

applies (left-)refinement to pi which is the original partition this refinement was initialized to

See also
undo
apply2
Returns
number of elementary intersections that were needed for refinement application

Implemented in permlib::partition::SetImageRefinement< PERM >, permlib::partition::BacktrackRefinement< PERM >, permlib::partition::SetStabilizeRefinement< PERM >, permlib::partition::MatrixRefinement2< PERM, MATRIX >, permlib::partition::MatrixRefinement1< PERM, MATRIX >, and permlib::partition::GroupRefinement< PERM, TRANS >.

◆ apply2()

template<class PERM>
unsigned int permlib::partition::Refinement< PERM >::apply2 ( Partition pi,
const PERM &  t 
) const
virtual

applies (right-)refinement to pi which is the image of the original partition this refinement was initialized to under t

See also
undo
apply
Returns
number of elementary intersections that were needed for refinement application

Reimplemented in permlib::partition::SetImageRefinement< PERM >, and permlib::partition::GroupRefinement< PERM, TRANS >.

◆ initializeAndApply()

template<class PERM >
bool permlib::partition::Refinement< PERM >::initializeAndApply ( Partition pi)

applies (left-)refinement to partition and initializes refinement for future use in R-base

Returns
true iff this is a strict refinement

The documentation for this class was generated from the following file: