permlib::partition::RBase< BSGSIN, TRANSRET > Class Template Reference

R-base for partition backtracking. More...

#include <r_base.h>

Inheritance diagram for permlib::partition::RBase< BSGSIN, TRANSRET >:
Inheritance graph
[legend]

List of all members.

Public Types

typedef BaseSearch< BSGSIN,
TRANSRET >::PERM 
PERM
typedef BaseSearch< BSGSIN,
TRANSRET >::TRANS 
TRANS
typedef boost::shared_ptr
< typename RBase< BSGSIN,
TRANSRET >::PERM > 
PERMptrType
typedef Refinement< PERM >
::RefinementPtr 
RefinementPtr
typedef RefinementFamily< PERM >
::PartitionPtr 
PartitionPtr
typedef std::list< std::pair
< PartitionPtr, RefinementPtr >
>::const_iterator 
PartitionIt
typedef BaseSearch< BSGSIN,
TRANSRET >::PERM 
PERM
typedef BaseSearch< BSGSIN,
TRANSRET >::TRANS 
TRANS
typedef boost::shared_ptr
< typename RBase< BSGSIN,
TRANSRET >::PERM > 
PERMptrType
typedef Refinement< PERM >
::RefinementPtr 
RefinementPtr
typedef RefinementFamily< PERM >
::PartitionPtr 
PartitionPtr
typedef std::list< std::pair
< PartitionPtr, RefinementPtr >
>::const_iterator 
PartitionIt

Public Member Functions

 RBase (const BSGSIN &bsgs, uint pruningLevelDCM, bool stopAfterFirstElement=false)
 constructor
void search (BSGS< PERM, TRANSRET > &groupK)
 perform search and store result in groupK
virtual PERMptrType searchCosetRepresentative (BSGS< PERM, TRANSRET > &groupK, BSGS< PERM, TRANSRET > &groupL)
 searches for a coset representative if one exists
 RBase (const BSGSIN &bsgs, uint pruningLevelDCM, bool stopAfterFirstElement=false)
 constructor
void search (BSGS< PERM, TRANSRET > &groupK)
 perform search and store result in groupK
virtual PERMptrType searchCosetRepresentative (BSGS< PERM, TRANSRET > &groupK, BSGS< PERM, TRANSRET > &groupL)
 searches for a coset representative if one exists

Protected Member Functions

void construct (SubgroupPredicate< PERM > *pred, RefinementFamily< PERM > *predRefinement)
 constructs an R-base for given predicate and refinement family
virtual uint processNewFixPoints (const Partition &pi, uint level)
 callback when a new fix point appears during R-base construction
virtual const std::vector
< ulong > & 
subgroupBase () const
 base of the sought subgroup
void construct (SubgroupPredicate< PERM > *pred, RefinementFamily< PERM > *predRefinement)
 constructs an R-base for given predicate and refinement family
virtual uint processNewFixPoints (const Partition &pi, uint level)
 callback when a new fix point appears during R-base construction
virtual const std::vector
< ulong > & 
subgroupBase () const
 base of the sought subgroup

Protected Attributes

Partition m_partition
 partition to base the backtrack tree on
Partition m_partition2

Detailed Description

template<class BSGSIN, class TRANSRET>
class permlib::partition::RBase< BSGSIN, TRANSRET >

R-base for partition backtracking.


Constructor & Destructor Documentation

template<class BSGSIN , class TRANSRET >
permlib::partition::RBase< BSGSIN, TRANSRET >::RBase ( const BSGSIN &  bsgs,
uint  pruningLevelDCM,
bool  stopAfterFirstElement = false 
) [inline]

constructor

Parameters:
bsgs BSGS to search in
pruningLevelDCM prune levels smaller than pruningLevelDCM by double coset minimality with base change
stopAfterFirstElement true iff the search can be stopped after the first element found with the desired property
template<class BSGSIN, class TRANSRET>
permlib::partition::RBase< BSGSIN, TRANSRET >::RBase ( const BSGSIN &  bsgs,
uint  pruningLevelDCM,
bool  stopAfterFirstElement = false 
)

constructor

Parameters:
bsgs BSGS to search in
pruningLevelDCM prune levels smaller than pruningLevelDCM by double coset minimality with base change
stopAfterFirstElement true iff the search can be stopped after the first element found with the desired property

Member Function Documentation

template<class BSGSIN, class TRANSRET>
void permlib::partition::RBase< BSGSIN, TRANSRET >::construct ( SubgroupPredicate< PERM > *  pred,
RefinementFamily< PERM > *  predRefinement 
) [protected]

constructs an R-base for given predicate and refinement family

group membership $\mathcal P$-refinement for m_bsgs is used by default

Parameters:
pred 
predRefinement refinement family to use; may be zero to use only group membership $\mathcal P$-refinement
template<class BSGSIN , class TRANSRET >
void permlib::partition::RBase< BSGSIN, TRANSRET >::construct ( SubgroupPredicate< PERM > *  pred,
RefinementFamily< PERM > *  predRefinement 
) [inline, protected]

constructs an R-base for given predicate and refinement family

group membership $\mathcal P$-refinement for m_bsgs is used by default

Parameters:
pred 
predRefinement refinement family to use; may be zero to use only group membership $\mathcal P$-refinement
template<class BSGSIN, class TRANSRET>
virtual PERMptrType permlib::partition::RBase< BSGSIN, TRANSRET >::searchCosetRepresentative ( BSGS< PERM, TRANSRET > &  groupK,
BSGS< PERM, TRANSRET > &  groupL 
) [virtual]

searches for a coset representative if one exists

the two arguments are two groups K and L such that $KgL \subseteq G(\mathcal P)\quad \Leftrightarrow g \in G(\mathcal P)$

Parameters:
groupK subgroup of G
groupL subgroup of G
Returns:
pointer to a coset representative element or NULL

Implements permlib::BaseSearch< BSGSIN, TRANSRET >.

template<class BSGSIN , class TRANSRET >
RBase< BSGSIN, TRANSRET >::PERMptrType permlib::partition::RBase< BSGSIN, TRANSRET >::searchCosetRepresentative ( BSGS< PERM, TRANSRET > &  groupK,
BSGS< PERM, TRANSRET > &  groupL 
) [inline, virtual]

searches for a coset representative if one exists

the two arguments are two groups K and L such that $KgL \subseteq G(\mathcal P)\quad \Leftrightarrow g \in G(\mathcal P)$

Parameters:
groupK subgroup of G
groupL subgroup of G
Returns:
pointer to a coset representative element or NULL

Implements permlib::BaseSearch< BSGSIN, TRANSRET >.


The documentation for this class was generated from the following files:
Generated on Fri Jun 18 22:00:25 2010 for PermLib by  doxygen 1.6.3