permlib  0.2.6
Library for permutation computations
 All Classes Functions Variables Typedefs Enumerations Friends
Public Types | Public Member Functions | Protected Member Functions
permlib::classic::BacktrackSearch< BSGSIN, TRANSRET > Class Template Reference

searching in a group with classical backtracking More...

#include <backtrack_search.h>

Inheritance diagram for permlib::classic::BacktrackSearch< BSGSIN, TRANSRET >:
permlib::BaseSearch< BSGSIN, TRANSRET > permlib::classic::IntersectionSearch< BSGSIN, TRANSRET > permlib::classic::LexSmallerImageSearch< BSGSIN, TRANSRET > permlib::classic::SetImageSearch< BSGSIN, TRANSRET > permlib::classic::SetStabilizerSearch< BSGSIN, TRANSRET >

List of all members.

Public Types

typedef BaseSearch< BSGSIN,
TRANSRET >::PERM 
PERM
typedef BaseSearch< BSGSIN,
TRANSRET >::TRANS 
TRANS

Public Member Functions

 BacktrackSearch (const BSGSIN &bsgs, unsigned int pruningLevelDCM, bool breakAfterChildRestriction=false, bool stopAfterFirstElement=false)
 constructor
void search (BSGS< PERM, TRANSRET > &groupK)
 searches for a subgroup and stores it into groupK
virtual BaseSearch< BSGSIN,
TRANSRET >::PERM::ptr 
searchCosetRepresentative (BSGS< PERM, TRANSRET > &groupK, BSGS< PERM, TRANSRET > &groupL)
 searches for a coset representative if one exists

Protected Member Functions

virtual const std::vector
< dom_int > & 
subgroupBase () const
 base of the sought subgroup
void construct (SubgroupPredicate< PERM > *pred, bool addPredRefinement)
 initializes the search
unsigned int search (const PERM &t, unsigned int level, unsigned int &completed, BSGS< PERM, TRANSRET > &groupK, BSGS< PERM, TRANSRET > &groupL)
 recursive backtrack search

Detailed Description

template<class BSGSIN, class TRANSRET>
class permlib::classic::BacktrackSearch< BSGSIN, TRANSRET >

searching in a group with classical backtracking


Constructor & Destructor Documentation

template<class BSGSIN , class TRANSRET >
permlib::classic::BacktrackSearch< BSGSIN, TRANSRET >::BacktrackSearch ( const BSGSIN &  bsgs,
unsigned int  pruningLevelDCM,
bool  breakAfterChildRestriction = false,
bool  stopAfterFirstElement = false 
)

constructor

Parameters:
bsgsBSGS to search in
pruningLevelDCMprune levels smaller than pruningLevelDCM by double coset minimality with base change
breakAfterChildRestrictiontrue iff the rest of a search level can be skipped when one element has been skipped due to child restriction
stopAfterFirstElementtrue iff the search can be stopped after the first element found with the desired property

Member Function Documentation

template<class BSGSIN , class TRANSRET >
BaseSearch< BSGSIN, TRANSRET >::PERM::ptr permlib::classic::BacktrackSearch< 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:
groupKsubgroup of G
groupLsubgroup 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 file: