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

stores an orbit in a set for fast contains() operation More...

#include <orbit_set.h>

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

List of all members.

Public Member Functions

virtual bool contains (const DOMAIN &val) const
 true iff there exists a transversal element mapping $\alpha$ to val
bool empty () const
 true iff orbit is empty (i.e. contains no element at all)
template<class Action >
void orbit (const DOMAIN &beta, const PERMlist &generators, Action a)
 computes orbit of beta under generators
ulong size () const
 number of orbit elements
virtual const DOMAIN & element () const
 returns one element of the orbit
virtual bool contains (const DOMAIN &val) const
 true iff there exists a transversal element mapping $\alpha$ to val
bool empty () const
 true iff orbit is empty (i.e. contains no element at all)
template<class Action >
void orbit (const DOMAIN &beta, const PERMlist &generators, Action a)
 computes orbit of beta under generators
ulong size () const
 number of orbit elements
virtual const DOMAIN & element () const
 returns one element of the orbit

Protected Member Functions

virtual bool foundOrbitElement (const DOMAIN &alpha, const DOMAIN &alpha_p, const PERMptr &p)
 callback when the orbit algorithm constructs an element alpha_p from alpha and p
virtual bool foundOrbitElement (const DOMAIN &alpha, const DOMAIN &alpha_p, const PERMptr &p)
 callback when the orbit algorithm constructs an element alpha_p from alpha and p

Protected Attributes

std::set< DOMAIN > m_orbitSet
 orbit elements as set

Detailed Description

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

stores an orbit in a set for fast contains() operation


Member Function Documentation

template<class PERM , class DOMAIN >
virtual bool permlib::OrbitSet< PERM, DOMAIN >::foundOrbitElement ( const DOMAIN &  alpha,
const DOMAIN &  alpha_p,
const PERMptr &  p 
) [protected, 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

Implements permlib::Orbit< PERM, DOMAIN >.

template<class PERM , class DOMAIN >
bool permlib::OrbitSet< PERM, DOMAIN >::foundOrbitElement ( const DOMAIN &  alpha,
const DOMAIN &  alpha_p,
const PERMptr &  p 
) [inline, protected, 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

Implements permlib::Orbit< PERM, DOMAIN >.

template<class PERM , class DOMAIN >
template<class Action >
void permlib::OrbitSet< PERM, DOMAIN >::orbit ( const DOMAIN &  beta,
const PERMlist &  generators,
Action  a 
) [inline]

computes orbit of beta under generators

Parameters:
beta 
generators 
a ()-callable structure that defines how a PERM acts on a DOMAIN-element
See also:
Transversal::TrivialAction
template<class PERM , class DOMAIN >
template<class Action >
void permlib::OrbitSet< PERM, DOMAIN >::orbit ( const DOMAIN &  beta,
const PERMlist &  generators,
Action  a 
) [inline]

computes orbit of beta under generators

Parameters:
beta 
generators 
a ()-callable structure that defines how a PERM acts on a DOMAIN-element
See also:
Transversal::TrivialAction

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