PermLib
|
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 (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 | |
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. | |
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 | |
std::ostream & | operator<< (std::ostream &out, const Permutation &p) |
output in cycle form |
Permutation class storing all values explicitly.
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