permlib
0.2.6
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 |