Public Methods |
| QEqnSolutionsInFreeGroup (const FreeGroup &G, const Word &equation, int numOfVar) |
void | startComputation () |
void | continueComputation () |
void | disableBuildingRegStab () |
void | enableBuildingRegStab () |
void | disableBuildingSolutions () |
void | enableBuildingSolutions () |
bool | isComputationDone () const |
bool | isComputationStarted () const |
bool | haveNewSolution () const |
bool | nextSolution () |
bool | haveNewStabGenerator () const |
bool | nextStabGenerator () |
bool | isBuildingSolutionsEnabled () const |
bool | isBuildingRegStabEnabled () const |
Endomorphism | getSolution () |
Automorphism | getStabGenerator () |
Word | surfaceForm () |
Automorphism | toSurfaceForm () |
FreeGroup | group () const |
Word | equation () const |
int | numberOfVariables () const |
int | numberOfGenerators () const |
int | numberOfConstants () const |
int | rank () const |
VectorPtrOf<Endomorphism> | basicSolutions () const |
VectorPtrOf<Automorphism> | regStabGenerators () const |
Automorphism | prefixMap () const |
EquationStatus | getProcessStatus () const |
Endomorphism | eliminator () const |
Private Types |
enum | { MUST_BE_MAPPED_TO_ITSELF,
MUST_BE_MAPPED_TO_1,
CAN_BE_MAPPED_TO_1
} |
Private Methods |
Bool | isVariable (const Generator &g) const |
bool | isConstant (const Generator &g) const |
void | buildNewVerticesAndLoopsFrom (const Word &vertex) |
RegularAuto | buildPath (const Word &from, const Word &to) |
RegularAuto | buildPathTo (const Word &to) |
void | registerEdge (const Word &source, const ElementaryRegularAuto &edge, const Word &target) |
void | buildSolutionsOfOneVertex (const Word &w) |
VectorOf<int> | checkProperties (const Word &w) |
ListOf<SingularEndo> | buildSingulars (const Word &w, const VectorOf< int > &varProperties) |
void | appendNewSolution (ListOf< SingularEndo > &solutions, const SingularEndo &newSolution) |
int | rankOfBasicSolution (const Endomorphism &solution) const |
void | processOneLoop (const Edge &edge) |
void | computeSurfaceForm () |
Word | extractSquare (Word &w, int firstLocation, int secondLocation) |
Word | extractPinch (Word &w, int firstLocation, int secondLocation) |
Word | extractCommutator (Word &w, int xFirstLocation, int xSecondLocation, int yFirstLocation) |
int | getLocationOfArbitraryVariable (const Word &w, int start, int stop) const |
int | getPairOfVariable (Word &w, int &firstLocation, int &secondLocation, bool oppositeOrder) const |
Word | bringToCanonicForm (Word &squares, Word &commutators, Word constants, Word &pinches) |
Private Attributes |
Word | theEquation |
int | theNumberOfGenerators |
int | theNumberOfVariables |
FreeGroup | theGroup |
VectorPtrOf<Automorphism> | theRegStabGenerators |
VectorPtrOf<Endomorphism> | theBasicSolutions |
int | theRank |
Word | theSurfaceForm |
Automorphism | toSurface |
bool | computationIsStarted |
bool | computationIsDone |
int | solution |
int | generator |
Endomorphism | theEliminator |
Automorphism | startPath |
Automorphism | invStartPath |
Word | root |
QuickAssociationsOf<Word,
ElementaryRegularAuto> | maxSubTree |
QueueOf<Word> | newVertices |
QueueOf<Edge> | loops |
Endomorphism | removeVarEndo |
SetOf<Endomorphism> | setOfBasicSolutions |
int | tempRank |
SetOf<Automorphism> | regStabSet |
bool | surfaceFormIsComputed |
EquationStatus | status |
Friends |
ostream& | operator<< (ostream &, const QEqnSolutionsInFreeGroup &) |