permlib::Orbit< PERM, DOMAIN > Class Template Reference

abstract base class for orbit computation More...

#include <orbit.h>

Inheritance diagram for permlib::Orbit< PERM, DOMAIN >:
Inheritance graph
[legend]

List of all members.

Public Member Functions

virtual bool contains (const DOMAIN &val) const =0
 true iff there exists a transversal element mapping $\alpha$ to val
virtual const DOMAIN & element () const =0
 returns one element of the orbit
virtual bool contains (const DOMAIN &val) const =0
 true iff there exists a transversal element mapping $\alpha$ to val
virtual const DOMAIN & element () const =0
 returns one element of the orbit

Protected Member Functions

template<class Action >
void orbit (const DOMAIN &beta, const PERMlist &generators, Action a, std::list< DOMAIN > &orbitList)
 computes orbit of beta under generators
template<class Action >
void orbitUpdate (const DOMAIN &beta, const PERMlist &generators, const PERMptr &g, Action a, std::list< DOMAIN > &orbitList)
 updates an existing orbit of beta after one element has been added
virtual bool foundOrbitElement (const DOMAIN &alpha, const DOMAIN &alpha_p, const PERMptr &p)=0
 callback when the orbit algorithm constructs an element alpha_p from alpha and p
template<class Action >
void orbit (const DOMAIN &beta, const PERMlist &generators, Action a, std::list< DOMAIN > &orbitList)
 computes orbit of beta under generators
template<class Action >
void orbitUpdate (const DOMAIN &beta, const PERMlist &generators, const PERMptr &g, Action a, std::list< DOMAIN > &orbitList)
 updates an existing orbit of beta after one element has been added
virtual bool foundOrbitElement (const DOMAIN &alpha, const DOMAIN &alpha_p, const PERMptr &p)=0
 callback when the orbit algorithm constructs an element alpha_p from alpha and p

Detailed Description

template<class PERM, class DOMAIN>
class permlib::Orbit< PERM, DOMAIN >

abstract base class for orbit computation


Member Function Documentation

template<class PERM, class DOMAIN>
virtual bool permlib::Orbit< PERM, DOMAIN >::foundOrbitElement ( const DOMAIN &  alpha,
const DOMAIN &  alpha_p,
const PERMptr &  p 
) [protected, pure virtual]

callback when the orbit algorithm constructs an element alpha_p from alpha and p

Returns:
true iff alpha_p is a new element that has not been seen before

Implemented in permlib::OrbitList< PERM, DOMAIN >, permlib::OrbitSet< PERM, DOMAIN >, permlib::Transversal< PERM >, permlib::OrbitList< PERM, DOMAIN >, permlib::OrbitSet< PERM, DOMAIN >, and permlib::Transversal< PERM >.

template<class PERM, class DOMAIN>
virtual bool permlib::Orbit< PERM, DOMAIN >::foundOrbitElement ( const DOMAIN &  alpha,
const DOMAIN &  alpha_p,
const PERMptr &  p 
) [protected, pure virtual]

callback when the orbit algorithm constructs an element alpha_p from alpha and p

Returns:
true iff alpha_p is a new element that has not been seen before

Implemented in permlib::OrbitList< PERM, DOMAIN >, permlib::OrbitSet< PERM, DOMAIN >, permlib::Transversal< PERM >, permlib::OrbitList< PERM, DOMAIN >, permlib::OrbitSet< PERM, DOMAIN >, and permlib::Transversal< PERM >.

template<class PERM, class DOMAIN>
template<class Action >
void permlib::Orbit< PERM, DOMAIN >::orbit ( const DOMAIN &  beta,
const PERMlist &  generators,
Action  a,
std::list< DOMAIN > &  orbitList 
) [inline, protected]

computes orbit of beta under generators

Parameters:
beta 
generators 
a ()-callable structure that defines how a PERM acts on a DOMAIN-element
orbitList a list of all orbit elements to be filled by the algorithm
template<class PERM , class DOMAIN>
template<class Action >
void permlib::Orbit< PERM, DOMAIN >::orbit ( const DOMAIN &  beta,
const PERMlist &  generators,
Action  a,
std::list< DOMAIN > &  orbitList 
) [inline, protected]

computes orbit of beta under generators

Parameters:
beta 
generators 
a ()-callable structure that defines how a PERM acts on a DOMAIN-element
orbitList a list of all orbit elements to be filled by the algorithm
template<class PERM, class DOMAIN>
template<class Action >
void permlib::Orbit< PERM, DOMAIN >::orbitUpdate ( const DOMAIN &  beta,
const PERMlist &  generators,
const PERMptr &  g,
Action  a,
std::list< DOMAIN > &  orbitList 
) [inline, protected]

updates an existing orbit of beta after one element has been added

if this instance of Orbit represents the orbit $\beta^{S_0}$, then after call of orbitUpdate it will represent the orbit $\beta^{S}$ where $S = S_0 \cup \{g\}$

Parameters:
beta 
generators updated generators, which must include g
g new generator which has not been there before
a ()-callable structure that defines how a PERM acts on a DOMAIN-element
orbitList a list of all orbit elements to be filled by the algorithm
template<class PERM , class DOMAIN>
template<class Action >
void permlib::Orbit< PERM, DOMAIN >::orbitUpdate ( const DOMAIN &  beta,
const PERMlist &  generators,
const PERMptr &  g,
Action  a,
std::list< DOMAIN > &  orbitList 
) [inline, protected]

updates an existing orbit of beta after one element has been added

if this instance of Orbit represents the orbit $\beta^{S_0}$, then after call of orbitUpdate it will represent the orbit $\beta^{S}$ where $S = S_0 \cup \{g\}$

Parameters:
beta 
generators updated generators, which must include g
g new generator which has not been there before
a ()-callable structure that defines how a PERM acts on a DOMAIN-element
orbitList a list of all orbit elements to be filled by the algorithm

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