CoxIter
1.3
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 &dimension) | |
~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 | readGraphFromFile (const string &inputFilename) |
Read the graph from a file. More... | |
bool | writeGraphToDraw (const string &outFilenameBasis) |
Write the graph in a file for GraphViz. More... | |
bool | writeGraph (const string &filename) |
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 () |
void | IS_computations (const string &t0, const string &s0) |
bool | computeEulerCharacteristicFVector () |
Conmpute the euler characteristic and f-vector. More... | |
void | growthSeries () |
int | isGraphCocompact () |
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 | checkCovolumeFiniteness () |
bool | canBeFiniteCovolume () |
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 checkFiniteCovolume after that, most of the time). More... | |
vector< vector< short unsigned int > > | canBeFiniteCovolume_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 | isVertexValid (const string &vertexLabel) const |
Test if a vertex exists in the graph. More... | |
unsigned int | get_vertexIndex (const string &vertexLabel) const |
Get the index of a vertex. More... | |
string | get_vertexLabel (const unsigned int &vertex) const |
Get the label of a vertex. More... | |
string | get_error () const |
Retourne le code d'erreur. More... | |
MPZ_rational | get_brEulerCaracteristic () const |
return brEulerCaracteristic More... | |
string | get_eulerCaracteristicString () const |
return Euler characteristic More... | |
string | get_eulerCharacteristic_computations () const |
Return the computations needed to determine Euler's characteristic. More... | |
int | get_fVectorAlternateSum () const |
Return the alternating sum of the componenents of the f-vector. More... | |
vector< unsigned int > | get_fVector () const |
Return the f-vector. More... | |
vector< unsigned int > | get_infSeqFVectorsUnits () const |
Return the units of the f-vector after n-doubling. More... | |
vector< unsigned int > | get_infSeqFVectorsPowers () const |
unsigned int | get_verticesAtInfinityCount () const |
Return the number of vertices at infinity. More... | |
unsigned int | get_irreducibleSphericalGraphsCount () const |
Return the number of irreducible spherical graphs. More... | |
bool | get_bWriteInfo () const |
Return bWriteInfo. More... | |
bool | get_debug () const |
Return get_debug. More... | |
unsigned int | get_dimension () const |
Return the dimension. More... | |
bool | get_dimensionGuessed () const |
Return true if the dimension was guessed. More... | |
int | get_isCocompact () |
Return the value of isCompact. More... | |
int | get_isFiniteCovolume () |
Return the value of isFiniteCovolume. More... | |
int | get_isArithmetic () const |
Arithmetic? More... | |
vector< vector< unsigned int > > | get_coxeterMatrix () const |
Return the Coxeter matrix. More... | |
unsigned int | get_coxeterMatrixEntry (const unsigned int &i, const unsigned int &j) const |
Return the one entry of the Coxeter matrix. More... | |
map< unsigned int, string > | get_weights () const |
Return the weights of the dotted lines. More... | |
string | get_CoxeterMatrixString () const |
Return the Coxeter matrix as a string. More... | |
vector< vector< string > > | get_array_str_2_GramMatrix () const |
Return the entries of 2*G (string) More... | |
string | get_gramMatrix () const |
Returns the Gram matrix. More... | |
string | get_coxeterGraph () const |
Returns the Coxeter graph. More... | |
string | get_gramMatrix_GAP () const |
Returns the Gram matrix (format GAP) More... | |
string | get_gramMatrix_LaTeX () const |
Returns the Gram matrix (format LaTeX) More... | |
string | get_gramMatrix_Mathematica () const |
Returns the Gram matrix (format Mathematica) More... | |
string | get_gramMatrix_PARI () const |
Returns the Gram matrix (format PARI) More... | |
string | get_gramMatrixField () const |
Field generated by the entries of the Gram matrix (string) More... | |
unsigned int | get_verticesCount () const |
Retourne le nombre de sommets du graphe. More... | |
bool | get_hasDottedLine () const |
Does the graph have at least one dotted edge? More... | |
int | get_hasDottedLineWithoutWeight () 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_isArithmetic (const unsigned int &arithmetic) |
Update the member isArithmetic. More... | |
void | set_checkCocompactness (const bool &value) |
void | set_checkCofiniteness (const bool &value) |
void | set_debug (const bool &value) |
void | set_useOpenMP (const bool &value) |
void | set_outputFilename (const string &filename) |
void | set_sdtOutToFile (const string &filename) |
void | set_verticesToRemove (const vector< string > &verticesRemove_) |
void | set_verticesToConsider (const vector< string > &verticesToConsider) |
void | set_bWriteInfo (const bool &newValue) |
Set bWriteInfo. More... | |
void | set_dimension (const unsigned int &dimension_) |
Update the member dimension. More... | |
GraphsList * | get_gl_graphsList_spherical () const |
GraphsList * | get_gl_graphsList_euclidean () const |
bool | get_hasSphericalGraphsOfRank (const unsigned int &rank) const |
bool | get_hasEuclideanGraphsOfRank (const unsigned int &rank) const |
void | get_growthSeries (vector< unsigned int > &cyclotomicNumerator, vector< mpz_class > &polynomialDenominator, bool &isReduced) |
bool | get_isGrowthSeriesReduced () |
Return true if the fraction is reduced. More... | |
vector< mpz_class > | get_growthSeries_denominator () |
string | get_growthSeries () |
string | get_growthSeries_raw () |
const vector< vector< GraphsProductSet > > * | get_ptr_graphsProducts () const |
Return the list of graphs products Remark: there is absolutely no verification. More... | |
void | set_coxeterMatrix (const vector< vector< unsigned int >> &matrix) |
Set the Coxeter matrix. More... | |
void | set_ouputMathematicalFormat (const string &format) |
void | map_vertices_labels_removeReference (const unsigned int &index) |
Remove the references to a vertex (for the label) More... | |
void | map_vertices_labels_addReference (const string &label) |
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 root, unsigned int from) |
Look for all the An starting from a given vertex. More... | |
void | printPath () |
Print the path 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 > &pathTemp, const vector< bool > &verticesLinkable) |
void | AnToEn_AnToTEn (const vector< short unsigned int > &pathTemp, const vector< bool > &linkableVertices, const bool &isSpherical, const short unsigned int &iStart) |
void | B3ToF4_B4ToTF4 (const vector< bool > &linkableVerticesStart, vector< short unsigned int > pathTemp, const short unsigned int &endVertex) |
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 &isSpherical, GraphsProduct &gp, vector< bool > &gpNonLinkableVertices) |
void | computeGraphsProducts_IS (GraphsListIterator grIt, const bool &isSpherical, GraphsProduct &gp, vector< bool > &gpNonLinkableVertices) |
void | canBeFiniteCovolume_computeGraphsProducts (GraphsListIterator grIt, GraphsProduct &gp, vector< bool > &gpNonLinkableVertices) |
void | canBeFiniteCovolume_complete_computeGraphsProducts (GraphsListIterator grIt, GraphsProduct &gp, vector< bool > &gpNonLinkableVertices) |
mpz_class | i_orderFiniteSubgraph (const unsigned int &type, const unsigned int &dataSupp) |
Order of a connected spherical graph. More... | |
bool | isGraph_cocompact_finiteVolume_parallel (unsigned int index) |
Check whether the graph is cocompact or not or has finite covolume or not Called by: isGraphCocompact and isFiniteCovolume. More... | |
bool | isGraph_cocompact_finiteVolume_sequential (unsigned int index) |
Check whether the graph is cocompact or not or has finite covolume or not Called by: isGraphCocompact and isFiniteCovolume. More... | |
void | growthSeries_symbolExponentFromProduct (const vector< vector< short unsigned int >> &product, vector< unsigned int > &symbol, unsigned int &exponent) const |
void | growthSeries_symbolExponentFromProduct (const vector< vector< short unsigned int >> &product, string &symbol, unsigned int &exponent) const |
void | growthSeries_parallel () |
void | growthSeries_sequential () |
void | growthSeries_details () |
void | growthSeries_mergeTerms (vector< mpz_class > &polynomial, vector< unsigned int > &symbol, vector< mpz_class > tempPolynomial, const vector< unsigned int > &tempSymbol, mpz_class biTemp=1) |
Private Attributes | |
string | error |
Error code. More... | |
bool | debug |
If true, prints additionnal information. More... | |
bool | useOpenMP |
Use OpenMP. More... | |
bool | bWriteInfo |
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 | ouputMathematicalFormat |
unsigned int | verticesCount |
Number of vertices. More... | |
unsigned int | maximalSubgraphRank |
Maximal rank of a subgraph. More... | |
unsigned int | dimension |
Dimension (or 0) More... | |
unsigned int | sphericalMaxRankFound |
Maximal rank for a spherical graph. More... | |
unsigned int | euclideanMaxRankFound |
Maximal rank for an euclidean graph. More... | |
bool | isDimensionGuessed |
If the dimension was not specified but guessed. More... | |
bool | isGraphExplored |
bool | isGraphsProductsComputed |
True if we computed the graphs products. More... | |
bool | isGrowthSeriesComputed |
True if we computed the growth series. More... | |
bool | hasDottedLine |
True if the graph has a dotted line. More... | |
int | hasDottedLineWithoutWeight |
bool | hasBoldLine |
True if the graph has a bold line. More... | |
bool | checkCocompactness |
True if we want to check the cocompacity. More... | |
bool | checkCofiniteness |
int | isCocompact |
int | isArithmetic |
1 If arithmetic, 0 if non-arithmetic, -1 if don't know 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... | |
vector< string > | verticesToRemove |
Vertices to be removed. More... | |
vector< string > | vertices |
Vertices to be taken. More... | |
map< string, unsigned int > | map_vertices_labelToIndex |
vector< string > | map_vertices_indexToLabel |
vector< vector< unsigned int > > | coxeterMatrix |
Coxeter matrix. More... | |
map< unsigned int, string > | weightsDotted |
Weights of the dotted lines (via linearization) More... | |
vector< vector< bool > > | visitedEdges |
For the DFS: traversed edges. More... | |
vector< bool > | visitedVertices |
For the DFS: traversed vertices. More... | |
vector< short unsigned int > | path |
chemin en cours (pour le DFS) More... | |
string | gramMatrixField |
Field generated by the entries of the Gram matrix. More... | |
bool | isGramMatrixFieldKnown |
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... | |
unsigned int | infSeq_t0 |
First reflecting hyperplane. More... | |
unsigned int | infSeq_s0 |
vector< unsigned int > | infSeqFVectorsUnits |
(ultra)parallel hyperplane, will be conjugate More... | |
vector< unsigned int > | infSeqFVectorsPowers |
Components of the f-vector. More... | |
vector< vector< GraphsProductSet > > | graphsProducts |
vector< vector< GraphsProductSet > > | graphsProducts_canBeFiniteCovolume |
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 > | factorials |
vector< mpz_class > | powersOf2 |
MPZ_rational | brEulerCaracteristic |
Euler characteristic. More... | |
string | eulerCharacteristic_computations |
int | fVectorAlternateSum |
Alternating sum of the components of thef-vector. More... | |
vector< unsigned int > | fVector |
F-vector. More... | |
unsigned int | verticesAtInfinityCount |
Number of vertices at infinity. More... | |
vector< mpz_class > | growthSeries_polynomialDenominator |
vector< unsigned int > | growthSeries_cyclotomicNumerator |
bool | growthSeries_isFractionReduced |
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 & | dimension | ||
) |
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 path
|
private |
|
private |
|
private |
Essaie de construire un F4 depuis un B3.
linkableVerticesStart(const | vector<bool> &) What's linkable to the B3 |
pathTemp | (vector<unsigned int>) Vertices of the B3 |
endVertex | Index of the vertex connected by a 4 |
CoxIter::bRunAllComputations | ( | ) |
Do all the computations.
Call the followings functions:
readGraph()
exploreGraph()
computeGraphsProducts()
euler()
isFiniteCovolume()
isGraphCocompact()
CoxIter::canBeFiniteCovolume | ( | ) |
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 checkFiniteCovolume after that, most of the time).
CoxIter::canBeFiniteCovolume_complete | ( | ) |
Check whether the group can be of finite covolume or no.
|
private |
|
private |
int CoxIter::checkCovolumeFiniteness | ( | ) |
CoxIter::computeEulerCharacteristicFVector | ( | ) |
Conmpute the euler characteristic and f-vector.
CoxIter::computeGraphsProducts | ( | ) |
Compute the possible products of the irreducible graphs.
|
private |
|
private |
sequence
\param grIt(GraphsListIterator): Iterator on the list \param isSpherical(const bool&): True if spherical, false if euclidean \param gp(GraphsProduct&) To store the product (for the cocompacity and
finite covolume tests)
gpNonLinkableVertices(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
root | Starting point |
from | Previous vertex (or root if first call) |
void CoxIter::exploreGraph | ( | ) |
\fn exploreGraph \brief Explore the graph (via coxeterMatrix) to gind subgraphs First, we find all the chains startings from every vertex. Then, we
expand the chains to spherical and euclidean graphs
CoxIter::get_array_str_2_GramMatrix | ( | ) | const |
Return the entries of 2*G (string)
CoxIter::get_brEulerCaracteristic | ( | ) | const |
return brEulerCaracteristic
CoxIter::get_bWriteInfo | ( | ) | const |
Return bWriteInfo.
CoxIter::get_coxeterGraph | ( | ) | const |
Returns the Coxeter graph.
CoxIter::get_coxeterMatrix | ( | ) | const |
Return the Coxeter matrix.
CoxIter::get_coxeterMatrixEntry | ( | const unsigned int & | i, |
const unsigned int & | j | ||
) | const |
Return the one entry of the Coxeter matrix.
CoxIter::get_CoxeterMatrixString | ( | ) | const |
Return the Coxeter matrix as a string.
CoxIter::get_debug | ( | ) | const |
Return get_debug.
CoxIter::get_dimension | ( | ) | const |
Return the dimension.
CoxIter::get_dimensionGuessed | ( | ) | const |
Return true if the dimension was guessed.
CoxIter::get_error | ( | ) | const |
Retourne le code d'erreur.
CoxIter::get_eulerCaracteristicString | ( | ) | const |
return Euler characteristic
CoxIter::get_eulerCharacteristic_computations | ( | ) | const |
Return the computations needed to determine Euler's characteristic.
CoxIter::get_fVector | ( | ) | const |
Return the f-vector.
CoxIter::get_fVectorAlternateSum | ( | ) | const |
Return the alternating sum of the componenents of the f-vector.
GraphsList* CoxIter::get_gl_graphsList_euclidean | ( | ) | const |
GraphsList* CoxIter::get_gl_graphsList_spherical | ( | ) | const |
CoxIter::get_gramMatrix | ( | ) | const |
Returns the Gram matrix.
CoxIter::get_gramMatrix_GAP | ( | ) | const |
Returns the Gram matrix (format GAP)
CoxIter::get_gramMatrix_LaTeX | ( | ) | const |
Returns the Gram matrix (format LaTeX)
CoxIter::get_gramMatrix_Mathematica | ( | ) | const |
Returns the Gram matrix (format Mathematica)
CoxIter::get_gramMatrix_PARI | ( | ) | const |
Returns the Gram matrix (format PARI)
CoxIter::get_gramMatrixField | ( | ) | const |
Field generated by the entries of the Gram matrix (string)
string CoxIter::get_growthSeries | ( | ) |
void CoxIter::get_growthSeries | ( | vector< unsigned int > & | cyclotomicNumerator, |
vector< mpz_class > & | polynomialDenominator, | ||
bool & | isReduced | ||
) |
\fn get_growthSeries \brief Return the growth series of the group \param cyclotomicNumerator(vector<unsigned int>&) Numerator (cyclotomic
factors)
polynomialDenominator(vector< | mpz_class >&) Denominator |
isReduced(bool&) | True if the fraction is reduced |
vector<mpz_class> CoxIter::get_growthSeries_denominator | ( | ) |
string CoxIter::get_growthSeries_raw | ( | ) |
CoxIter::get_hasDottedLine | ( | ) | const |
Does the graph have at least one dotted edge?
CoxIter::get_hasDottedLineWithoutWeight | ( | ) | const |
Does the graph have dotted edges without weights?
bool CoxIter::get_hasEuclideanGraphsOfRank | ( | const unsigned int & | rank | ) | const |
bool CoxIter::get_hasSphericalGraphsOfRank | ( | const unsigned int & | rank | ) | const |
vector<unsigned int> CoxIter::get_infSeqFVectorsPowers | ( | ) | const |
CoxIter::get_infSeqFVectorsUnits | ( | ) | const |
Return the units of the f-vector after n-doubling.
Return the powers of 2^{n-1} of the f-vector after n-doubling.
CoxIter::get_irreducibleSphericalGraphsCount | ( | ) | const |
Return the number of irreducible spherical graphs.
CoxIter::get_isArithmetic | ( | ) | const |
Arithmetic?
CoxIter::get_isCocompact | ( | ) |
Return the value of isCompact.
CoxIter::get_isFiniteCovolume | ( | ) |
Return the value of isFiniteCovolume.
CoxIter::get_isGrowthSeriesReduced | ( | ) |
Return true if the fraction is reduced.
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_vertexIndex | ( | const string & | vertexLabel | ) | const |
Get the index of a vertex.
vertexLabel(const | string&) Label of the vertex |
CoxIter::get_vertexLabel | ( | const unsigned int & | vertex | ) | const |
Get the label of a vertex.
vertex(const | unsigned int&) Index of the vertex |
CoxIter::get_verticesAtInfinityCount | ( | ) | const |
Return the number of vertices at infinity.
CoxIter::get_verticesCount | ( | ) | const |
Retourne le nombre de sommets du graphe.
CoxIter::get_weights | ( | ) | const |
Return the weights of the dotted lines.
CoxIter::growthSeries | ( | ) |
Compute the growth series
|
private |
|
private |
Given the parameters, compute polynomial/symbol += tempPolynomial/tempSymbol
\param polynomial(vector< mpz_class >&) First polynomial (by reference) \param symbol(vector<short unsigned int>&) First symbol (by reference) \param tempPolynomial(vector< mpz_class >) Second polynomial \param tempSymbol(const vector<short unsigned int>&) Second symbol \param biTemp(mpz_class) Eventually, some coefficient for the second
polynomial
\return Nothing but the first two parameters are modified
|
private |
Compute the growth series
|
private |
Compute the growth series
|
private |
|
private |
|
private |
Order of a connected spherical graph.
type | Type du graphe (0 = An, 1=Bn, ...) |
dataSupp | Valeur du n pour presque tous les graphes, poids pour un G_2^n \return Ordre (unsigned long int) |
|
private |
Une fois le nombre de sommets du graphe connu (via inputRead()), fait divers initialisations de variables.
void CoxIter::IS_computations | ( | const string & | t0, |
const string & | s0 | ||
) |
\fn IS_computations \brief Do some computations related to the infinite sequence Remark: It is suppose that both t0, s0 are admissible vertices whose
corresponding hyperplanes are (ultra)parallel
t0(const | string&) t0 Reflecting hyperplane |
t0(const | string&) s0 Other hyperplane |
|
private |
Check whether the graph is cocompact or not or has finite covolume or not Called by: isGraphCocompact and isFiniteCovolume.
index(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: isGraphCocompact and isFiniteCovolume.
index(unsigned | int): 1 if test for compacity, 2 if test for the finite covolume |
CoxIter::isGraphCocompact | ( | ) |
Check whether the graph is cocompact or not Remark: If the programm was not called with the -compacity flag, the function does nothing.
CoxIter::isVertexValid | ( | const string & | vertexLabel | ) | const |
Test if a vertex exists in the graph.
vertexLabel(const | string&) Label of the vertex |
CoxIter::map_vertices_labels_addReference | ( | const string & | label | ) |
Add a references for a new vertex.
label(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 & | index | ) |
Remove the references to a vertex (for the label)
index(const | unsigned int&) index 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 path vector.
CoxIter::readGraphFromFile | ( | const string & | inputFilename | ) |
Read the graph from a file.
inputFilename(const | string&) Path to the file |
CoxIter::set_bWriteInfo | ( | const bool & | newValue | ) |
Set bWriteInfo.
newValue(const | bool&) The new value |
void CoxIter::set_checkCocompactness | ( | const bool & | value | ) |
void CoxIter::set_checkCofiniteness | ( | const bool & | value | ) |
CoxIter::set_coxeterMatrix | ( | const vector< vector< unsigned int >> & | matrix | ) |
Set the Coxeter matrix.
matrix(const | vector< vector<short unsigned int> >&) The matrix |
void CoxIter::set_debug | ( | const bool & | value | ) |
CoxIter::set_dimension | ( | const unsigned int & | dimension_ | ) |
Update the member dimension.
CoxIter::set_isArithmetic | ( | const unsigned int & | arithmetic | ) |
Update the member isArithmetic.
This is used by the Arithmeticity class
void CoxIter::set_ouputMathematicalFormat | ( | const string & | format | ) |
void CoxIter::set_outputFilename | ( | const string & | filename | ) |
void CoxIter::set_sdtOutToFile | ( | const string & | filename | ) |
void CoxIter::set_useOpenMP | ( | const bool & | value | ) |
void CoxIter::set_verticesToConsider | ( | const vector< string > & | verticesToConsider | ) |
void CoxIter::set_verticesToRemove | ( | const vector< string > & | verticesRemove_ | ) |
CoxIter::writeGraph | ( | const string & | filename | ) |
Write the graph in a file (so that it can be read by CoxIter)
filename(const | string &) |
CoxIter::writeGraphToDraw | ( | const string & | outFilenameBasis | ) |
Write the graph in a file for GraphViz.
The graph is written in outputGraphFilename + ".graphviz"
outFilenameBasis(const | string&) Filename |
|
friend |
|
private |
True if we want to redirect cout to a file.
|
private |
Euler characteristic.
|
private |
If we want to write informations (false if CoxIter is used "as a plugin")
|
private |
True if we want to check the cocompacity.
|
private |
True if we want to check the finite covolume condition
|
private |
Coxeter matrix.
|
private |
If true, prints additionnal information.
|
private |
Dimension (or 0)
|
private |
Error code.
|
private |
Maximal rank for an euclidean graph.
|
private |
Euler characteristic (without the computations done)
|
private |
|
private |
F-vector.
|
private |
Alternating sum of the components of thef-vector.
|
private |
Field generated by the entries of the Gram matrix.
|
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 canBeFiniteCovolume_complete)
|
private |
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 |
Contains a list oif cyclotomic polynomials
|
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 |
(i-1)th term contains the coefficient of x^i
|
private |
Row series, not simplified.
|
private |
True if the graph has a bold line.
|
private |
True if the graph has a dotted line.
|
private |
If the graph dotted lines without weight (-1: maybe, 0: no, 1: yes)
|
private |
|
private |
First reflecting hyperplane.
|
private |
Components of the f-vector.
|
private |
(ultra)parallel hyperplane, will be conjugate
Components of the f-vector
|
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 |
If the dimension was not specified but guessed.
|
private |
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.
1 If finite covolume, 0 if not, -1 if don't know (or cannot know), -2 if not tested
|
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 |
For the correspondance: label <-> indexes of vertices
|
private |
For the correspondance: label <-> indexes of vertices
|
private |
Maximal rank of a subgraph.
|
private |
Format for mathematical output (generic, mathematica)
|
private |
Flow to the file.
|
private |
chemin en cours (pour le DFS)
|
private |
|
private |
To reset the cout, at the end.
|
private |
Maximal rank for a spherical graph.
|
private |
Use OpenMP.
|
private |
Vertices to be taken.
|
private |
Number of vertices at infinity.
|
private |
Number of vertices.
|
private |
Vertices to be removed.
|
private |
For the DFS: traversed edges.
|
private |
For the DFS: traversed vertices.
|
private |
Weights of the dotted lines (via linearization)