BKLLeftNormalForm Class Reference

Birman-Ko-Lee left normal form. More...

#include <BKLLeftNormalForm.h>

List of all members.

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.
BKLLeftNormalFormoperator= (const BKLLeftNormalForm &bkl)
 Assignment operator.
BKLLeftNormalFormoperator= (const NF &bkl)
 Assignment operator.
BKLLeftNormalFormoperator *= (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, WordareConjugate (const BKLLeftNormalForm &bkl) const
 Check if two normal forms are conjugate.
pair< BKLLeftNormalForm, BKLLeftNormalFormcycle () const
 Cycle operation.
pair< BKLLeftNormalForm, BKLLeftNormalFormdecycle () const
 Decycle operation.
pair< BKLLeftNormalForm, BKLLeftNormalFormfindSSSRepresentative () const
 Find a representative of the supper summit set.
void setPower (int p)
 Set the power of $\Delta$. The result is always a correct normal form.
void setDecomposition (const list< Permutation > &d)
 Set the decomposition $(\xi_1,\ldots,\xi_m)$. 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 $\delta = (1,2,3,\ldots,n-1,0)$.

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< PermutationgetSimpleConjugators (const NF &bkl)
 Function returns a set of permutation braids (well, permutations) such that ... Must be checked.
static set< PermutationgetSimpleSummitConjugators (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< PermutationtheDecomposition
 Sequence of permutations.


Detailed Description

Birman-Ko-Lee left normal form.

The standard presentation for BKL is a pair $(p,(\xi_1,\ldots,\xi_m))$, where $p\in \mathbb{Z}$ and each $\xi_i \in S_n$ is a permutation.

Definition at line 34 of file BKLLeftNormalForm.h.


Member Typedef Documentation

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.


Member Enumeration Documentation

enum BKLLeftNormalForm::transformationResult [private]
 

The result of the transformation.

Enumerator:
TWO_MULTIPLIERS 
ONE_MULTIPLIER 
NO_CHANGE 

Definition at line 192 of file BKLLeftNormalForm.h.


Constructor & Destructor Documentation

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.


Member Function Documentation

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 $\delta = (1,2,3,\ldots,n-1,0)$.

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 BKLLeftNormalForm::operator * const BKLLeftNormalForm bkl  )  const
 

BKLLeftNormalForm& BKLLeftNormalForm::operator *= const BKLLeftNormalForm bkl  ) 
 

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
 

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 $(\xi_1,\ldots,\xi_m)$. 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 $\Delta$. 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.


Member Data Documentation

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=().


The documentation for this class was generated from the following file:
Generated on Sun Dec 3 10:58:58 2006 for CRyptography And Groups (CRAG) by  doxygen 1.4.6