CoxIter
1.2
CoxIter - Computing invariants of hyperbolic Coxeter groups
|
Main class for the work. More...
#include <coxiter.h>
Public Member Functions | |
CoxIter () | |
Default constructor. Initialize the default values. More... | |
CoxIter (const vector< vector< unsigned int > > &iMatrix, const unsigned int &iDimension) | |
Constructor. More... | |
~CoxIter () | |
bool | bRunAllComputations () |
Do all the computations. More... | |
void | printCoxeterMatrix () |
Print Coxeter matrix. More... | |
void | printCoxeterGraph () |
Print Coxeter graph. More... | |
void | printGramMatrix () |
Print the Gram matrix. More... | |
void | printGramMatrix_GAP () |
Print the Gram matrix (format: GAP) More... | |
void | printGramMatrix_Mathematica () |
Print the Gram matrix (format: Mathematica) More... | |
void | printGramMatrix_PARI () |
Print the Gram matrix (format: PARI) More... | |
void | printGramMatrix_LaTeX () |
Print the Gram matrix (format: LaTeX) More... | |
void | printEdgesVisitedMatrix () |
Display the visited edges. More... | |
bool | bReadGraphFromFile (const string &strInputFilename) |
Read the graph from a file. More... | |
bool | bWriteGraphToDraw (const string &strOutFilenameBasis) |
Write the graph in a file for GraphViz. More... | |
bool | bWriteGraph (const string &strFilename) |
Write the graph in a file (so that it can be read by CoxIter) More... | |
bool | parseGraph (istream &streamIn) |
Read and parse graph from stream. More... | |
void | exploreGraph () |
Explore the graph (via iCoxeterMatrix) to gind subgraphs. More... | |
bool | bEulerCharacteristicFVector () |
Conmpute the euler characteristic and f-vector. More... | |
void | growthSeries () |
int | iIsGraphCocompact () |
Check whether the graph is cocompact or not Remark: If the programm was not called with the -compacity flag, the function does nothing. More... | |
int | isFiniteCovolume () |
Check whether the graph is of finite covolume or not Remark: If the programm was not called with the -fv flag, the function does nothing. More... | |
bool | bCanBeFiniteCovolume () |
Check whether the group can be of finite covolume or no Remark: If true, it does not mean that the group is of finite covolume. The function only provides a faster test if we think that the group is of infinite covolume. We also suppose that this function is called alone most of the time (i.e. that we won't call bCheckFiniteCovolume after that, most of the time). More... | |
vector< vector< short unsigned int > > | bCanBeFiniteCovolume_complete () |
Check whether the group can be of finite covolume or no. More... | |
void | computeGraphsProducts () |
Compute the possible products of the irreducible graphs. More... | |
void | printGrowthSeries () |
Display the growth series. More... | |
void | printEuclideanGraphsProducts (vector< map< vector< vector< short unsigned int > >, unsigned int > > *graphsProductsCount) |
Display the euclidean graph products found. More... | |
bool | bIsVertexValid (const string &strVertexLabel) const |
Test if a vertex exists in the graph. More... | |
unsigned int | get_iVertexIndex (const string &strVertexLabel) const |
Get the index of a vertex. More... | |
string | get_strVertexLabel (const unsigned int &iVertex) const |
Get the label of a vertex. More... | |
string | get_strError () const |
Retourne le code d'erreur. More... | |
MPZ_rational | get_brEulerCaracteristic () const |
return brEulerCaracteristic More... | |
string | get_strEulerCaracteristic () const |
return brEulerCaracteristic More... | |
string | get_strEulerCharacteristic_computations () const |
Return the computations needed to determine Euler's characteristic. More... | |
int | get_iFVectorAlternateSum () const |
Return the alternating sum of the componenents of the f-vector. More... | |
vector< unsigned int > | get_iFVector () const |
Return the f-vector. More... | |
unsigned int | get_iVerticesAtInfinityCount () const |
Return the number of vertices at infinity. More... | |
unsigned int | get_iIrreducibleSphericalGraphsCount () const |
Return the number of irreducible spherical graphs. More... | |
bool | get_bWriteInfo () const |
Return bWriteInfo. More... | |
bool | get_bDebug () const |
Return get_bDebug. More... | |
unsigned int | get_iDimension () const |
Return the dimension. More... | |
bool | get_bDimensionGuessed () const |
Return true if the dimension was guessed. More... | |
int | get_iIsCocompact () |
Return the value of iIsCompact. More... | |
int | get_iIsFiniteCovolume () |
Return the value of iIsFiniteCovolume. More... | |
int | get_iIsArithmetic () const |
Arithmetic? More... | |
vector< vector< unsigned int > > | get_iCoxeterMatrix () const |
Return the Coxeter matrix. More... | |
map< unsigned int, string > | get_strWeights () const |
string | get_strCoxeterMatrix () const |
Return the Coxeter matrix. More... | |
vector< vector< string > > | get_array_str_2_GramMatrix () const |
Return the entries of 2*G (string) More... | |
string | get_strGramMatrix () const |
Returns the Gram matrix. More... | |
string | get_strCoxeterGraph () const |
Returns the Coxeter graph. More... | |
string | get_strGramMatrix_GAP () const |
Returns the Gram matrix (format GAP) More... | |
string | get_strGramMatrix_LaTeX () const |
Returns the Gram matrix (format LaTeX) More... | |
string | get_strGramMatrix_Mathematica () const |
Returns the Gram matrix (format Mathematica) More... | |
string | get_strGramMatrix_PARI () const |
Returns the Gram matrix (format PARI) More... | |
string | get_strGramMatrixField () const |
Field generated by the entries of the Gram matrix (string) More... | |
unsigned int | get_iVerticesCount () const |
Retourne le nombre de sommets du graphe. More... | |
bool | get_bHasDottedLine () const |
Does the graph have at least one dotted edge? More... | |
int | get_iHasDottedLineWithoutWeight () const |
Does the graph have dotted edges without weights? More... | |
vector< string > | get_str_map_vertices_indexToLabel () const |
Return the label of the vertices. More... | |
void | set_iIsArithmetic (const unsigned int &iArithmetic) |
Update the member iIsArithmetic. More... | |
void | set_bCheckCocompactness (const bool &bValue) |
void | set_bCheckCofiniteness (const bool &bValue) |
void | set_bDebug (const bool &bValue) |
void | set_bUseOpenMP (const bool &bValue) |
void | set_strOutputFilename (const string &strValue) |
void | set_sdtoutToFile (const string &strFilename) |
void | set_strVerticesToRemove (const vector< string > &strVerticesRemove_) |
void | set_strVerticesToConsider (const vector< string > &strVerticesToConsider) |
void | set_bWriteInfo (const bool &bNewValue) |
Set bWriteInfo. More... | |
void | set_iDimension (const unsigned int &iDimension_) |
Update the member iDimension. More... | |
GraphsList * | get_gl_graphsList_spherical () const |
GraphsList * | get_gl_graphsList_euclidean () const |
bool | get_b_hasSphericalGraphsOfRank (const unsigned int &iRank) const |
bool | get_b_hasEuclideanGraphsOfRank (const unsigned int &iRank) const |
void | get_iGrowthSeries (vector< unsigned int > &iCyclotomicNumerator, vector< mpz_class > &iPolynomialDenominator, bool &bReduced) |
Return the growth series of the group. More... | |
bool | get_bGrowthSeriesReduced () |
Return true if the fraction is reduced. More... | |
vector< mpz_class > | get_iGrowthSeries_denominator () |
string | get_strGrowthSeries () |
string | get_strGrowthSeries_raw () |
const vector< vector< GraphsProductSet > > * | get_ptr_graphsProducts () const |
Return the list of graphs products Remark: there is absolutely no verification. More... | |
void | set_iCoxeterMatrix (const vector< vector< unsigned int > > &iMat) |
Set the Coxeter matrix. More... | |
void | set_strOuputMathematicalFormat (const string &strO) |
void | map_vertices_labels_removeReference (const unsigned int &iIndex) |
Remove the references to a vertex (for the label) More... | |
void | map_vertices_labels_addReference (const string &strLabel) |
Add a references for a new vertex. More... | |
void | map_vertices_labels_create () |
Create labels if there is none (int –> string) More... | |
void | map_vertices_labels_reinitialize () |
Create labels if there with int. More... | |
Private Member Functions | |
CoxIter (const CoxIter &) | |
We do not want to do this. More... | |
void | initializations () |
Une fois le nombre de sommets du graphe connu (via inputRead( ) ), fait divers initialisations de variables. More... | |
void | DFS (unsigned int iRoot, unsigned int iFrom) |
Look for all the An starting from a given vertex. More... | |
void | printPath () |
Print the iPath vector. More... | |
void | addGraphsFromPath () |
Find the different type of graphs (An, Bn, Dn, En, Hn, F4) from any An. More... | |
void | AnToEn_AnToTEn (const vector< short unsigned int > &iPathTemp, const vector< bool > &bVerticesLinkable) |
Essaie de construire des En depuis un An. More... | |
void | AnToEn_AnToTEn (const vector< short unsigned int > &iPathTemp, const vector< bool > &bVerticesLinkable, const bool &bSpherical, const short unsigned int &iStart) |
Try to foind an En from an An. More... | |
void | B3ToF4_B4ToTF4 (const vector< bool > &bVerticesBeginLinkable, vector< short unsigned int > iPathTemp, const short unsigned int &iVEnd) |
Essaie de construire un F4 depuis un B3. More... | |
void | computeGraphsProducts (GraphsListIterator grIt, vector< map< vector< vector< short unsigned int > >, unsigned int > > *graphsProductsCount, const bool &bSpherical, GraphsProduct &gp, vector< bool > &bGPVerticesNonLinkable) |
Try to find products of connected graphs. More... | |
void | bCanBeFiniteCovolume_computeGraphsProducts (GraphsListIterator grIt, GraphsProduct &gp, vector< bool > &bGPVerticesNonLinkable) |
void | bCanBeFiniteCovolume_complete_computeGraphsProducts (GraphsListIterator grIt, GraphsProduct &gp, vector< bool > &bGPVerticesNonLinkable) |
mpz_class | i_orderFiniteSubgraph (const unsigned int &iType, const unsigned int &iDataSupp) |
Order of a connected spherical graph. More... | |
bool | b_isGraph_cocompact_finiteVolume_parallel (unsigned int iIndex) |
Check whether the graph is cocompact or not or has finite covolume or not Called by: iIsGraphCocompact and iIsFiniteCovolume. More... | |
bool | b_isGraph_cocompact_finiteVolume_sequential (unsigned int iIndex) |
Check whether the graph is cocompact or not or has finite covolume or not Called by: iIsGraphCocompact and iIsFiniteCovolume. More... | |
void | growthSeries_symbolExponentFromProduct (const vector< vector< short unsigned int > > &iProduct, vector< unsigned int > &iSymbol, unsigned int &iExponent) const |
void | growthSeries_symbolExponentFromProduct (const vector< vector< short unsigned int > > &iProduct, string &strSymbol, unsigned int &iExponent) const |
void | growthSeries_parallel () |
void | growthSeries_sequential () |
void | growthSeries_details () |
void | growthSeries_mergeTerms (vector< mpz_class > &iPolynomial, vector< unsigned int > &iSymbol, vector< mpz_class > iTemp_polynomial, const vector< unsigned int > &iTemp_symbol, mpz_class biTemp=1) |
Private Attributes | |
string | strError |
Error code. More... | |
bool | bDebug |
If true, prints additionnal information. More... | |
bool | bUseOpenMP |
Use OpenMP. More... | |
bool | bWriteInfo |
If we want to write informations (false if CoxIter is used "as a plugin") More... | |
bool | bWriteProgress |
If we want to display the progress // TODO: option. More... | |
bool | bCoutFile |
True if we want to redirect cout to a file. More... | |
ofstream * | outCout |
Flow to the file. More... | |
streambuf * | sBufOld |
To reset the cout, at the end. More... | |
string | strOuputMathematicalFormat |
Format for mathematical output (generic, mathematica) More... | |
unsigned int | iVerticesCount |
Number of vertices. More... | |
unsigned int | iDimension |
Dimension (or 0) More... | |
unsigned int | iSphericalMaxRankFound |
Maximal rank for a spherical graph. More... | |
unsigned int | iEuclideanMaxRankFound |
Maximal rank for an euclidean graph. More... | |
bool | bDimension_guessed |
If the dimension was not specified but guessed. More... | |
bool | bGraphExplored |
True if we looked for connected subgraphs (affine and spherical) More... | |
bool | bGraphsProductsComputed |
True if we computed the graphs products. More... | |
bool | bGrowthSeriesComputed |
True if we computed the growth series. More... | |
bool | bHasDottedLine |
True if the graph has a dotted line. More... | |
int | iHasDottedLineWithoutWeight |
If the graph dotted lines without weight (-1: maybe, 0: no, 1: yes) More... | |
bool | bHasBoldLine |
True if the graph has a bold line. More... | |
bool | bCheckCocompactness |
True if we want to check the cocompacity. More... | |
bool | bCheckCofiniteness |
True if we want to check the finite covolume condition. More... | |
int | iIsCocompact |
1 If cocompact, 0 if not, -1 if don't know, -2 if not tested More... | |
int | iIsArithmetic |
1 If arithmetic, 0 if non-arithmetic, -1 if don't know More... | |
int | iIsFiniteCovolume |
1 If finite covolume, 0 if not, -1 if don't know (or cannot know), -2 if not tested More... | |
vector< string > | strVerticesRemove |
Vertices to be removed. More... | |
vector< string > | strVertices |
Vertices to be taken. More... | |
map< string, unsigned int > | map_vertices_labelToIndex |
For the correspondance: label <-> indexes of vertices. More... | |
vector< string > | map_vertices_indexToLabel |
For the correspondance: label <-> indexes of vertices. More... | |
vector< vector< unsigned int > > | iCoxeterMatrix |
Coxeter matrix. More... | |
map< unsigned int, string > | strWeights |
Weights of the dotted lines (via linearization) More... | |
vector< vector< bool > > | bEdgesVisited |
For the DFS: traversed edges. More... | |
vector< bool > | bVerticesVisited |
For the DFS: traversed vertices. More... | |
vector< short unsigned int > | iPath |
chemin en cours (pour le DFS) More... | |
string | strGramMatrixField |
Field generated by the entries of the Gram matrix. More... | |
bool | bGramMatrixField |
True if the field was determined. More... | |
GraphsList * | graphsList_spherical |
Pointer to the list of spherical graphs. More... | |
GraphsList * | graphsList_euclidean |
Pointer to the list of euclidean graphs. More... | |
vector< vector< GraphsProductSet > > | graphsProducts |
vector< vector< GraphsProductSet > > | graphsProducts_bCanBeFiniteCovolume |
vector< map< vector< vector< short unsigned int > >, unsigned int > > | graphsProductsCount_spherical |
vector< map< vector< vector< short unsigned int > >, unsigned int > > | graphsProductsCount_euclidean |
Count graphs products (with their multiplicities) More... | |
vector< mpz_class > | iFactorials |
vector< mpz_class > | iPowersOf2 |
Some factorials and powers of two. More... | |
MPZ_rational | brEulerCaracteristic |
Euler characteristic. More... | |
string | strEulerCharacteristic_computations |
Euler characteristic (without the computations done) More... | |
int | iFVectorAlternateSum |
Alternating sum of the components of the f-vector. More... | |
vector< unsigned int > | iFVector |
F-vector. More... | |
unsigned int | iVerticesAtInfinityCount |
Number of vertices at infinity. More... | |
vector< mpz_class > | growthSeries_iPolynomialDenominator |
(i-1)th term contains the coefficient of x^i More... | |
vector< unsigned int > | growthSeries_iCyclotomicNumerator |
Contains a list oif cyclotomic polynomials. More... | |
bool | growthSeries_bFractionReduced |
True if the fraction has been reduced (it is always the case when the cyclotomic terms are <= 60, which is... always (except if we find an hyperbolic group in H^31)) More... | |
string | growthSeries_raw |
Row series, not simplified. More... | |
Friends | |
ostream & | operator<< (ostream &, CoxIter const &) |
Main class for the work.
CoxIter::CoxIter | ( | ) |
Default constructor. Initialize the default values.
CoxIter::CoxIter | ( | const vector< vector< unsigned int > > & | iMatrix, |
const unsigned int & | iDimension | ||
) |
Constructor.
iMatrix( | const vector< vector<unsigned int> >& ) Coxeter matrix |
iDimension( | const unsigned int & ) Dimension |
CoxIter does not verification on iMatrix. Especially, it is assumed that iMatrix is symmetric
CoxIter::~CoxIter | ( | ) |
|
private |
We do not want to do this.
|
private |
Find the different type of graphs (An, Bn, Dn, En, Hn, F4) from any An.
Based on the content of iPath
|
private |
Essaie de construire des En depuis un An.
iPathTemp( | vector<short unsigned int>& ) Chemin actuel composant le An |
bVerticesLinkable( | const vector< bool >& ) Ce qui est liable ou non au graphe |
|
private |
Try to foind an En from an An.
iPathTemp | ( const vector<unsigned int>& ) Vertices of the An |
bVerticesLinkable( | const vector<bool> & ) Linkable vertices |
bSpherical( | const bool& ) True if spherical, false if euclidean |
iStart( | const unsigned int& ) Starting point |
|
private |
Essaie de construire un F4 depuis un B3.
bVerticesBeginLinkable( | const vector<bool> & ) What's linkable to the B3 |
iPathTemp | (vector<unsigned int>) Vertices of the B3 |
iVEnd | Index of the vertex connected by a 4 |
|
private |
Check whether the graph is cocompact or not or has finite covolume or not Called by: iIsGraphCocompact and iIsFiniteCovolume.
iIndex( | unsigned int ): 1 if test for compacity, 2 if test for the finite covolume |
|
private |
Check whether the graph is cocompact or not or has finite covolume or not Called by: iIsGraphCocompact and iIsFiniteCovolume.
iIndex( | unsigned int ): 1 if test for compacity, 2 if test for the finite covolume |
CoxIter::bCanBeFiniteCovolume | ( | ) |
Check whether the group can be of finite covolume or no Remark: If true, it does not mean that the group is of finite covolume. The function only provides a faster test if we think that the group is of infinite covolume. We also suppose that this function is called alone most of the time (i.e. that we won't call bCheckFiniteCovolume after that, most of the time).
< Current graphs product
CoxIter::bCanBeFiniteCovolume_complete | ( | ) |
Check whether the group can be of finite covolume or no.
< Current graphs product
|
private |
|
private |
CoxIter::bEulerCharacteristicFVector | ( | ) |
Conmpute the euler characteristic and f-vector.
CoxIter::bIsVertexValid | ( | const string & | strVertexLabel | ) | const |
Test if a vertex exists in the graph.
strVertexLabel( | const string& ) Label of the vertex |
CoxIter::bReadGraphFromFile | ( | const string & | strInputFilename | ) |
Read the graph from a file.
strInputFilename( | const string& ) Path to the file |
CoxIter::bRunAllComputations | ( | ) |
Do all the computations.
Call the followings functions:
readGraph( )
exploreGraph( )
computeGraphsProducts( )
euler( )
isFiniteCovolume( )
iIsGraphCocompact( )
CoxIter::bWriteGraph | ( | const string & | strFilename | ) |
Write the graph in a file (so that it can be read by CoxIter)
strFilename( | const string & ) |
CoxIter::bWriteGraphToDraw | ( | const string & | strOutFilenameBasis | ) |
Write the graph in a file for GraphViz.
The graph is written in szOutputGraphFilename + ".graphviz"
strOutFilenameBasis( | const string& ) Filename |
CoxIter::computeGraphsProducts | ( | ) |
Compute the possible products of the irreducible graphs.
< Current graphs product
|
private |
Try to find products of connected graphs.
grIt( | GraphsListIterator ): Iterator on the list |
graphsProductsCount( | vector< map<vector< vector<short unsigned int> >, unsigned int> >* ) Point to the list of graphs |
bSpherical( | const bool& ): True if spherical, false if euclidean |
gp( | GraphsProduct& ) To store the product (for the cocompacity and finite covolume tests) |
bGPVerticesNonLinkable( | vector< bool >& ) Vertices which cannot be linked to the current product |
|
private |
Look for all the An starting from a given vertex.
Thie function calls addGraphsFromPath() for each maximal An found
iRoot | Starting point |
iFrom | Previous vertex (or iRoot if first call) |
CoxIter::exploreGraph | ( | ) |
Explore the graph (via iCoxeterMatrix) to gind subgraphs.
First, we find all the chains startings from every vertex. Then, we wxpand the chains to spherical and euclidean graphs
CoxIter::get_array_str_2_GramMatrix | ( | ) | const |
Return the entries of 2*G (string)
bool CoxIter::get_b_hasEuclideanGraphsOfRank | ( | const unsigned int & | iRank | ) | const |
bool CoxIter::get_b_hasSphericalGraphsOfRank | ( | const unsigned int & | iRank | ) | const |
CoxIter::get_bDebug | ( | ) | const |
Return get_bDebug.
CoxIter::get_bDimensionGuessed | ( | ) | const |
Return true if the dimension was guessed.
CoxIter::get_bGrowthSeriesReduced | ( | ) |
Return true if the fraction is reduced.
CoxIter::get_bHasDottedLine | ( | ) | const |
Does the graph have at least one dotted edge?
CoxIter::get_brEulerCaracteristic | ( | ) | const |
return brEulerCaracteristic
CoxIter::get_bWriteInfo | ( | ) | const |
Return bWriteInfo.
GraphsList * CoxIter::get_gl_graphsList_euclidean | ( | ) | const |
GraphsList * CoxIter::get_gl_graphsList_spherical | ( | ) | const |
CoxIter::get_iCoxeterMatrix | ( | ) | const |
Return the Coxeter matrix.
Return the weights of the dotted lines.
CoxIter::get_iDimension | ( | ) | const |
Return the dimension.
CoxIter::get_iFVector | ( | ) | const |
Return the f-vector.
CoxIter::get_iFVectorAlternateSum | ( | ) | const |
Return the alternating sum of the componenents of the f-vector.
CoxIter::get_iGrowthSeries | ( | vector< unsigned int > & | iCyclotomicNumerator, |
vector< mpz_class > & | iPolynomialDenominator, | ||
bool & | bReduced | ||
) |
Return the growth series of the group.
iCyclotomicNumerator( | vector<unsigned int>& ) Numerator (cyclotomic factors) |
iPolynomialDenominator( | vector< mpz_class >& ) Denominator |
bReduced( | bool& ) True if the fraction is reduced |
vector< mpz_class > CoxIter::get_iGrowthSeries_denominator | ( | ) |
CoxIter::get_iHasDottedLineWithoutWeight | ( | ) | const |
Does the graph have dotted edges without weights?
CoxIter::get_iIrreducibleSphericalGraphsCount | ( | ) | const |
Return the number of irreducible spherical graphs.
CoxIter::get_iIsArithmetic | ( | ) | const |
Arithmetic?
CoxIter::get_iIsCocompact | ( | ) |
Return the value of iIsCompact.
CoxIter::get_iIsFiniteCovolume | ( | ) |
Return the value of iIsFiniteCovolume.
CoxIter::get_iVertexIndex | ( | const string & | strVertexLabel | ) | const |
Get the index of a vertex.
strVertexLabel( | const string& ) Label of the vertex |
CoxIter::get_iVerticesAtInfinityCount | ( | ) | const |
Return the number of vertices at infinity.
CoxIter::get_iVerticesCount | ( | ) | const |
Retourne le nombre de sommets du graphe.
CoxIter::get_ptr_graphsProducts | ( | ) | const |
Return the list of graphs products Remark: there is absolutely no verification.
CoxIter::get_str_map_vertices_indexToLabel | ( | ) | const |
Return the label of the vertices.
CoxIter::get_strCoxeterGraph | ( | ) | const |
Returns the Coxeter graph.
CoxIter::get_strCoxeterMatrix | ( | ) | const |
Return the Coxeter matrix.
CoxIter::get_strError | ( | ) | const |
Retourne le code d'erreur.
CoxIter::get_strEulerCaracteristic | ( | ) | const |
return brEulerCaracteristic
CoxIter::get_strEulerCharacteristic_computations | ( | ) | const |
Return the computations needed to determine Euler's characteristic.
CoxIter::get_strGramMatrix | ( | ) | const |
Returns the Gram matrix.
CoxIter::get_strGramMatrix_GAP | ( | ) | const |
Returns the Gram matrix (format GAP)
CoxIter::get_strGramMatrix_LaTeX | ( | ) | const |
Returns the Gram matrix (format LaTeX)
CoxIter::get_strGramMatrix_Mathematica | ( | ) | const |
Returns the Gram matrix (format Mathematica)
CoxIter::get_strGramMatrix_PARI | ( | ) | const |
Returns the Gram matrix (format PARI)
CoxIter::get_strGramMatrixField | ( | ) | const |
Field generated by the entries of the Gram matrix (string)
string CoxIter::get_strGrowthSeries | ( | ) |
string CoxIter::get_strGrowthSeries_raw | ( | ) |
CoxIter::get_strVertexLabel | ( | const unsigned int & | iVertex | ) | const |
Get the label of a vertex.
iVertex( | const unsigned int& ) Index of the vertex |
std::map< unsigned int, string > CoxIter::get_strWeights | ( | ) | const |
CoxIter::growthSeries | ( | ) |
Compute the growth series
|
private |
|
private |
Given the parameters, compute iPolynomial/iSymbol += iTemp_polynomial/iTemp_symbol
iPolynomial( | vector< mpz_class >& ) First polynomial (by reference) |
iSymbol( | vector<short unsigned int>& ) First symbol (by reference) |
iTemp_polynomial( | vector< mpz_class > ) Second polynomial |
iTemp_symbol( | const vector<short unsigned int>& ) Second symbol |
biTemp( | mpz_class ) Eventually, some coefficient for the second polynomial |
|
private |
Compute the growth series
|
private |
Compute the growth series
|
private |
From a product of graphs, compute the corresponding symbol [n1, n2, ..., nk] together with the exponent.
iProduct( | const vector< vector<short unsigned int> >& ) The product of graphs |
iSymbol( | vector<short unsigned int>& ) [i] = j means [i, ..., i] j times (parameter by reference) |
iExponent( | unsigned int& ) The exponent |
|
private |
From a product of graphs, compute the corresponding symbol [n1, n2, ..., nk] together with the exponent.
iProduct( | const vector< vector<unsigned int> >& ) The product of graphs |
strSymbol( | string& ) |
iExponent | (u nsigned int& ) The exponent |
|
private |
Order of a connected spherical graph.
iType | Type du graphe (0 = An, 1=Bn, ...) |
iDataSupp | Valeur du n pour presque tous les graphes, poids pour un G_2^n |
CoxIter::iIsGraphCocompact | ( | ) |
Check whether the graph is cocompact or not Remark: If the programm was not called with the -compacity flag, the function does nothing.
|
private |
Une fois le nombre de sommets du graphe connu (via inputRead( ) ), fait divers initialisations de variables.
CoxIter::isFiniteCovolume | ( | ) |
Check whether the graph is of finite covolume or not Remark: If the programm was not called with the -fv flag, the function does nothing.
CoxIter::map_vertices_labels_addReference | ( | const string & | strLabel | ) |
Add a references for a new vertex.
strLabel( | const string& ) Label of the vertec |
CoxIter::map_vertices_labels_create | ( | ) |
Create labels if there is none (int –> string)
CoxIter::map_vertices_labels_reinitialize | ( | ) |
Create labels if there with int.
CoxIter::map_vertices_labels_removeReference | ( | const unsigned int & | iIndex | ) |
Remove the references to a vertex (for the label)
iIndex( | const unsigned int& ) iIndex of the vertex |
CoxIter::parseGraph | ( | istream & | streamIn | ) |
Read and parse graph from stream.
streamIn( | const ifstream& ) Stream to the content (file or std::cin) |
CoxIter::printCoxeterGraph | ( | ) |
Print Coxeter graph.
CoxIter::printCoxeterMatrix | ( | ) |
Print Coxeter matrix.
CoxIter::printEdgesVisitedMatrix | ( | ) |
Display the visited edges.
CoxIter::printEuclideanGraphsProducts | ( | vector< map< vector< vector< short unsigned int > >, unsigned int > > * | graphsProductsCount | ) |
Display the euclidean graph products found.
graphsProductsCount( | vector< map<vector< vector<short unsigned int> >, unsigned int> >* ) Pointer to the vector contaitning the results |
CoxIter::printGramMatrix | ( | ) |
Print the Gram matrix.
CoxIter::printGramMatrix_GAP | ( | ) |
Print the Gram matrix (format: GAP)
CoxIter::printGramMatrix_LaTeX | ( | ) |
Print the Gram matrix (format: LaTeX)
CoxIter::printGramMatrix_Mathematica | ( | ) |
Print the Gram matrix (format: Mathematica)
CoxIter::printGramMatrix_PARI | ( | ) |
Print the Gram matrix (format: PARI)
CoxIter::printGrowthSeries | ( | ) |
Display the growth series.
|
private |
Print the iPath vector.
void CoxIter::set_bCheckCocompactness | ( | const bool & | bValue | ) |
void CoxIter::set_bCheckCofiniteness | ( | const bool & | bValue | ) |
void CoxIter::set_bDebug | ( | const bool & | bValue | ) |
void CoxIter::set_bUseOpenMP | ( | const bool & | bValue | ) |
CoxIter::set_bWriteInfo | ( | const bool & | bNewValue | ) |
Set bWriteInfo.
bNewValue( | const bool& ) The new value |
CoxIter::set_iCoxeterMatrix | ( | const vector< vector< unsigned int > > & | iMat | ) |
Set the Coxeter matrix.
iMat( | const vector< vector<short unsigned int> >& ) The matrix |
CoxIter::set_iDimension | ( | const unsigned int & | iDimension_ | ) |
Update the member iDimension.
CoxIter::set_iIsArithmetic | ( | const unsigned int & | iArithmetic | ) |
Update the member iIsArithmetic.
This is used by the Arithmeticity class
void CoxIter::set_sdtoutToFile | ( | const string & | strFilename | ) |
void CoxIter::set_strOuputMathematicalFormat | ( | const string & | strO | ) |
void CoxIter::set_strOutputFilename | ( | const string & | strValue | ) |
void CoxIter::set_strVerticesToConsider | ( | const vector< string > & | strVerticesToConsider | ) |
void CoxIter::set_strVerticesToRemove | ( | const vector< string > & | strVerticesRemove_ | ) |
|
friend |
|
private |
True if we want to check the cocompacity.
|
private |
True if we want to check the finite covolume condition.
|
private |
True if we want to redirect cout to a file.
|
private |
If true, prints additionnal information.
|
private |
If the dimension was not specified but guessed.
|
private |
For the DFS: traversed edges.
|
private |
True if the field was determined.
|
private |
True if we looked for connected subgraphs (affine and spherical)
|
private |
True if we computed the graphs products.
|
private |
True if we computed the growth series.
|
private |
True if the graph has a bold line.
|
private |
True if the graph has a dotted line.
|
private |
Euler characteristic.
|
private |
Use OpenMP.
|
private |
For the DFS: traversed vertices.
|
private |
If we want to write informations (false if CoxIter is used "as a plugin")
|
private |
If we want to display the progress // TODO: option.
|
private |
Pointer to the list of euclidean graphs.
|
private |
Pointer to the list of spherical graphs.
|
private |
[0] Spherical products of codimension 1 [1] Spherical products of codimension 0 [2] Euclidean products of codimension 0
OR
[i] => Euclidean products of rank i (for bCanBeFiniteCovolume_complete)
|
private |
Used in bCanBeFiniteCovolume and bCanBeFiniteCovolume_complete [0] Euclidean products of codimension 0
OR
[i] => Euclidean products of rank i
|
private |
Count graphs products (with their multiplicities)
External vectors: products of graphs by their number of total vertices
map< vector< vector<short unsigned int> >, unsigned int>
The key is "vector< vector<short unsigned int> >": For each type of graph and each rank, how many times it occurs in the product
For example, the vector [ 0 => [2, 3], 3 => [ 1 ] ] corresponds to: A1 x A1 x A2 x A2 X A2 x D3
la valeur est le nombre de fois que le produit apparait
|
private |
|
private |
True if the fraction has been reduced (it is always the case when the cyclotomic terms are <= 60, which is... always (except if we find an hyperbolic group in H^31))
|
private |
Contains a list oif cyclotomic polynomials.
|
private |
(i-1)th term contains the coefficient of x^i
|
private |
Row series, not simplified.
|
private |
Coxeter matrix.
|
private |
Dimension (or 0)
|
private |
Maximal rank for an euclidean graph.
|
private |
|
private |
F-vector.
|
private |
Alternating sum of the components of the f-vector.
|
private |
If the graph dotted lines without weight (-1: maybe, 0: no, 1: yes)
|
private |
1 If arithmetic, 0 if non-arithmetic, -1 if don't know
|
private |
1 If cocompact, 0 if not, -1 if don't know, -2 if not tested
|
private |
1 If finite covolume, 0 if not, -1 if don't know (or cannot know), -2 if not tested
|
private |
chemin en cours (pour le DFS)
|
private |
Some factorials and powers of two.
|
private |
Maximal rank for a spherical graph.
|
private |
Number of vertices at infinity.
|
private |
Number of vertices.
|
private |
For the correspondance: label <-> indexes of vertices.
|
private |
For the correspondance: label <-> indexes of vertices.
|
private |
Flow to the file.
|
private |
To reset the cout, at the end.
|
private |
Error code.
|
private |
Euler characteristic (without the computations done)
|
private |
Field generated by the entries of the Gram matrix.
|
private |
Format for mathematical output (generic, mathematica)
|
private |
Vertices to be taken.
|
private |
Vertices to be removed.
|
private |
Weights of the dotted lines (via linearization)