Birman-Ko-Lee left normal form. More...
#include <BKLLeftNormalForm.h>
Public Types | |
typedef triple< int, int, list < Permutation > > | NF |
Presentation of a normal form. | |
Public Member Functions | |
BKLLeftNormalForm () | |
Create trivial normal form. | |
BKLLeftNormalForm (const BKLLeftNormalForm &bkl) | |
Copy constructor. | |
BKLLeftNormalForm (int rank, int p, const list< Permutation > &d) | |
Create normal form by its presentation (no check that given presentation is correct, use adjustDecomposition if the presentation is incorrect). | |
BKLLeftNormalForm (const NF &bkl) | |
Create normal form by its presentation (no check that given presentation is correct, use adjustDecomposition if the presentation is incorrect). | |
BKLLeftNormalForm (const BraidGroup &G, const Word &w) | |
Create a normal form of a braid word. | |
BKLLeftNormalForm & | operator= (const BKLLeftNormalForm &bkl) |
Assignment operator. | |
BKLLeftNormalForm & | operator= (const NF &bkl) |
Assignment operator. | |
BKLLeftNormalForm & | operator*= (const BKLLeftNormalForm &bkl) |
BKLLeftNormalForm | operator* (const BKLLeftNormalForm &bkl) const |
BKLLeftNormalForm | operator- () const |
bool | operator== (const BKLLeftNormalForm &bkl) const |
bool | operator!= (const BKLLeftNormalForm &bkl) const |
bool | operator< (const BKLLeftNormalForm &bkl) const |
int | getPower () const |
Get the power of omega. | |
const list< Permutation > & | getDecomposition () const |
Get the decomposition. | |
operator NF () const | |
Get the presentation of the normal form. | |
bool | isTrivial () const |
Check if the normal form os trivial. | |
Word | getWord () const |
Return a word represented by the normal form. | |
pair< bool, Word > | areConjugate (const BKLLeftNormalForm &bkl) const |
Check if two normal forms are conjugate. | |
pair< BKLLeftNormalForm, BKLLeftNormalForm > | cycle () const |
Cycle operation. | |
pair< BKLLeftNormalForm, BKLLeftNormalForm > | decycle () const |
Decycle operation. | |
pair< BKLLeftNormalForm, BKLLeftNormalForm > | findSSSRepresentative () const |
Find a representative of the supper summit set. | |
void | setPower (int p) |
Set the power of . The result is always a correct normal form. | |
void | setDecomposition (const list< Permutation > &d) |
Set the decomposition . The result might be an incorrect form (not satisfying some gready conditions of this BKL form). | |
Static Public Member Functions | |
static Permutation | getTinyTwistPermutation (int theIndex) |
Returns a cyclic permutation . | |
Private Types | |
enum | transformationResult { TWO_MULTIPLIERS, ONE_MULTIPLIER, NO_CHANGE } |
The result of the transformation. More... | |
Private Member Functions | |
NF | inverse () const |
Invert the normal form. | |
NF | multiply (const BKLLeftNormalForm &bkl) const |
Multiply the normal form by another normal form on the right. | |
Static Private Member Functions | |
static transformationResult | transform (int theIndex, Permutation &p1, Permutation &p2) |
Main function for computing the normal form of the word. | |
static set< Permutation > | getSimpleConjugators (const NF &bkl) |
Function returns a set of permutation braids (well, permutations) such that ... Must be checked. | |
static set< Permutation > | getSimpleSummitConjugators (const NF &bkl) |
Function returns a set of permutation braids (well, permutations) such that ... Must be checked. | |
static void | adjustDecomposition (int rank, int &power, list< Permutation > &decomp) |
Function adjusting the decomposition in a normal form. | |
Private Attributes | |
int | theRank |
The rank of the braid group (number of strands). | |
int | theOmegaPower |
Power of omega. | |
list< Permutation > | theDecomposition |
Sequence of permutations. |
Birman-Ko-Lee left normal form.
The standard presentation for BKL is a pair , where and each is a permutation.
Definition at line 34 of file BKLLeftNormalForm.h.
typedef triple< int , int , list< Permutation > > BKLLeftNormalForm::NF |
Presentation of a normal form.
The first component specifies the rank of a braid group. The second component specifies the power of the twist. The third component specifies the list of braid permutations.
Definition at line 45 of file BKLLeftNormalForm.h.
enum BKLLeftNormalForm::transformationResult [private] |
The result of the transformation.
Definition at line 192 of file BKLLeftNormalForm.h.
BKLLeftNormalForm::BKLLeftNormalForm | ( | ) | [inline] |
Create trivial normal form.
Definition at line 55 of file BKLLeftNormalForm.h.
BKLLeftNormalForm::BKLLeftNormalForm | ( | const BKLLeftNormalForm & | bkl | ) | [inline] |
Copy constructor.
Definition at line 60 of file BKLLeftNormalForm.h.
BKLLeftNormalForm::BKLLeftNormalForm | ( | int | rank, | |
int | p, | |||
const list< Permutation > & | d | |||
) | [inline] |
Create normal form by its presentation (no check that given presentation is correct, use adjustDecomposition if the presentation is incorrect).
Definition at line 66 of file BKLLeftNormalForm.h.
BKLLeftNormalForm::BKLLeftNormalForm | ( | const NF & | bkl | ) | [inline] |
Create normal form by its presentation (no check that given presentation is correct, use adjustDecomposition if the presentation is incorrect).
Definition at line 72 of file BKLLeftNormalForm.h.
BKLLeftNormalForm::BKLLeftNormalForm | ( | const BraidGroup & | G, | |
const Word & | w | |||
) |
Create a normal form of a braid word.
static void BKLLeftNormalForm::adjustDecomposition | ( | int | rank, | |
int & | power, | |||
list< Permutation > & | decomp | |||
) | [static, private] |
Function adjusting the decomposition in a normal form.
pair< bool , Word > BKLLeftNormalForm::areConjugate | ( | const BKLLeftNormalForm & | bkl | ) | const |
Check if two normal forms are conjugate.
pair< BKLLeftNormalForm , BKLLeftNormalForm > BKLLeftNormalForm::cycle | ( | ) | const |
Cycle operation.
pair< BKLLeftNormalForm , BKLLeftNormalForm > BKLLeftNormalForm::decycle | ( | ) | const |
Decycle operation.
pair< BKLLeftNormalForm , BKLLeftNormalForm > BKLLeftNormalForm::findSSSRepresentative | ( | ) | const |
Find a representative of the supper summit set.
const list< Permutation >& BKLLeftNormalForm::getDecomposition | ( | ) | const [inline] |
Get the decomposition.
Definition at line 126 of file BKLLeftNormalForm.h.
References theDecomposition.
int BKLLeftNormalForm::getPower | ( | ) | const [inline] |
Get the power of omega.
Definition at line 124 of file BKLLeftNormalForm.h.
References theOmegaPower.
static set<Permutation> BKLLeftNormalForm::getSimpleConjugators | ( | const NF & | bkl | ) | [static, private] |
Function returns a set of permutation braids (well, permutations) such that ... Must be checked.
static set<Permutation> BKLLeftNormalForm::getSimpleSummitConjugators | ( | const NF & | bkl | ) | [static, private] |
Function returns a set of permutation braids (well, permutations) such that ... Must be checked.
static Permutation BKLLeftNormalForm::getTinyTwistPermutation | ( | int | theIndex | ) | [inline, static] |
Returns a cyclic permutation .
Definition at line 135 of file BKLLeftNormalForm.h.
Word BKLLeftNormalForm::getWord | ( | ) | const |
Return a word represented by the normal form.
NF BKLLeftNormalForm::inverse | ( | ) | const [private] |
Invert the normal form.
bool BKLLeftNormalForm::isTrivial | ( | ) | const [inline] |
Check if the normal form os trivial.
Definition at line 132 of file BKLLeftNormalForm.h.
References theDecomposition, and theOmegaPower.
NF BKLLeftNormalForm::multiply | ( | const BKLLeftNormalForm & | bkl | ) | const [private] |
Multiply the normal form by another normal form on the right.
BKLLeftNormalForm::operator NF | ( | ) | const [inline] |
Get the presentation of the normal form.
Definition at line 129 of file BKLLeftNormalForm.h.
References theDecomposition, theOmegaPower, and theRank.
bool BKLLeftNormalForm::operator!= | ( | const BKLLeftNormalForm & | bkl | ) | const |
BKLLeftNormalForm BKLLeftNormalForm::operator* | ( | const BKLLeftNormalForm & | bkl | ) | const |
BKLLeftNormalForm& BKLLeftNormalForm::operator*= | ( | const BKLLeftNormalForm & | bkl | ) |
BKLLeftNormalForm BKLLeftNormalForm::operator- | ( | ) | const |
bool BKLLeftNormalForm::operator< | ( | const BKLLeftNormalForm & | bkl | ) | const |
BKLLeftNormalForm& BKLLeftNormalForm::operator= | ( | const NF & | bkl | ) | [inline] |
Assignment operator.
Definition at line 91 of file BKLLeftNormalForm.h.
References triple< T1, T2, T3 >::first, triple< T1, T2, T3 >::second, theDecomposition, theOmegaPower, theRank, and triple< T1, T2, T3 >::third.
BKLLeftNormalForm& BKLLeftNormalForm::operator= | ( | const BKLLeftNormalForm & | bkl | ) | [inline] |
Assignment operator.
Definition at line 83 of file BKLLeftNormalForm.h.
References theDecomposition, theOmegaPower, and theRank.
bool BKLLeftNormalForm::operator== | ( | const BKLLeftNormalForm & | bkl | ) | const |
void BKLLeftNormalForm::setDecomposition | ( | const list< Permutation > & | d | ) | [inline] |
Set the decomposition . The result might be an incorrect form (not satisfying some gready conditions of this BKL form).
Definition at line 171 of file BKLLeftNormalForm.h.
References theDecomposition.
void BKLLeftNormalForm::setPower | ( | int | p | ) | [inline] |
Set the power of . The result is always a correct normal form.
Definition at line 167 of file BKLLeftNormalForm.h.
References theOmegaPower.
static transformationResult BKLLeftNormalForm::transform | ( | int | theIndex, | |
Permutation & | p1, | |||
Permutation & | p2 | |||
) | [static, private] |
Main function for computing the normal form of the word.
list< Permutation > BKLLeftNormalForm::theDecomposition [private] |
Sequence of permutations.
Definition at line 227 of file BKLLeftNormalForm.h.
Referenced by getDecomposition(), isTrivial(), operator NF(), operator=(), and setDecomposition().
int BKLLeftNormalForm::theOmegaPower [private] |
Power of omega.
Definition at line 224 of file BKLLeftNormalForm.h.
Referenced by getPower(), isTrivial(), operator NF(), operator=(), and setPower().
int BKLLeftNormalForm::theRank [private] |
The rank of the braid group (number of strands).
Definition at line 221 of file BKLLeftNormalForm.h.
Referenced by operator NF(), and operator=().