|
permlib
0.2.8
Library for permutation computations
|
Permutation class storing all values explicitly. More...
#include <permutation.h>
Public Types | |
| typedef std::vector< dom_int > | perm |
| typedef for permutation image | |
|
typedef boost::shared_ptr < Permutation > | ptr |
| boost shared_ptr of this class | |
Public Member Functions | |
| Permutation (dom_int n) | |
| constructs identity permutation acting on n elements | |
| Permutation (dom_int n, const std::string &cycles) | |
| constructs permutation acting on n elements, given by string in cycle form | |
| Permutation (dom_int n, const char *cycles) | |
| constructs permutation acting on n elements, given by string in cycle form | |
| Permutation (const perm &p) | |
| sort of copy constructor | |
| Permutation (const Permutation &p) | |
| copy constructor | |
| template<class InputIterator > | |
| Permutation (InputIterator begin, InputIterator end) | |
| construct from dom_int-iterator | |
| Permutation | operator* (const Permutation &p) const |
| permutation multiplication from the right | |
| Permutation & | operator*= (const Permutation &p) |
| permutation inplace multiplication from the right | |
| Permutation & | operator^= (const Permutation &p) |
| permutation inplace multiplication from the left | |
| Permutation | operator~ () const |
| permutation inversion | |
| Permutation & | invertInplace () |
| permutation inplace inversion | |
| bool | operator== (const Permutation &p2) const |
| equals operator | |
| dom_int | operator/ (dom_int val) const |
| lets permutation act on val | |
| dom_int | at (dom_int val) const |
| lets permutation act on val | |
| dom_int | operator% (dom_int val) const |
| lets inverse permutation act on val, i.e. compute j such that (this->at(j) == val) | |
| bool | isIdentity () const |
| returns true if this permutation is identity | |
| void | flush () |
| dummy stub for interface compatability with PermutationWord | |
| dom_int | size () const |
| number of points this permutation acts on | |
| std::list< std::pair< dom_int, unsigned int > > | cycles (bool includeTrivialCycles=false) const |
| computes all cycles of this permutation | |
| boost::uint64_t | order () const |
| computes the order of this permutation | |
| template<typename ForwardIterator > | |
| Permutation * | project (unsigned int n_proj, ForwardIterator begin, ForwardIterator end) const |
| restricts this permutation p to a subset S of the domain | |
| void | setTransposition (dom_int pos, dom_int val) |
| updates this permutation such that pos is mapped onto val and val onto pos | |
Protected Member Functions | |
| Permutation (dom_int n, bool) | |
| INTERNAL ONLY: constructs an "empty" permutation, i.e. without element mapping. | |
| void | initFromCycleString (const std::string &cycles) |
| initializes permutation data from a string in cycle form | |
Protected Attributes | |
| perm | m_perm |
| defintion of permutation behavior | |
| bool | m_isIdentity |
| if set to true, permutation is identity; if set to false then it is not known whether this is identity; | |
Friends | |
| struct | permlib::exports::BSGSSchreierExport |
| std::ostream & | operator<< (std::ostream &out, const Permutation &p) |
| output in cycle form | |
Permutation class storing all values explicitly.
| std::list< std::pair< dom_int, unsigned int > > permlib::Permutation::cycles | ( | bool | includeTrivialCycles = false | ) | const [inline] |
computes all cycles of this permutation
| includeTrivialCycles | if true, the result list contains also cycles consisting of one single element |
| bool permlib::Permutation::isIdentity | ( | ) | const [inline] |
returns true if this permutation is identity
This is done by checking the image of every point.
| Permutation & permlib::Permutation::operator*= | ( | const Permutation & | p | ) | [inline] |
permutation inplace multiplication from the right
i.e. THIS := THIS * p
| Permutation & permlib::Permutation::operator^= | ( | const Permutation & | p | ) | [inline] |
permutation inplace multiplication from the left
i.e. THIS := p * THIS
| boost::uint64_t permlib::Permutation::order | ( | ) | const [inline] |
computes the order of this permutation
| Permutation * permlib::Permutation::project | ( | unsigned int | n_proj, |
| ForwardIterator | begin, | ||
| ForwardIterator | end | ||
| ) | const |
restricts this permutation p to a subset S of the domain
S must fullfill S^p = S
| n_proj | degree of the restricted permutation (ie. number of elements in the subset S |
| begin | begin-iterator to subset S |
| end | end-iterator to subset S |
1.7.6.1