CoxIter  1.3
CoxIter - Computing invariants of hyperbolic Coxeter groups
app.h
Go to the documentation of this file.
1 /*
2 Copyright (C) 2013-2017
3 Rafael Guglielmetti, rafael.guglielmetti@unifr.ch
4 */
5 
6 /*
7 This file is part of CoxIter.
8 
9 CoxIter is free software: you can redistribute it and/or modify
10 it under the terms of the GNU General Public License as
11 published by the Free Software Foundation, either version 3 of the
12 License, or (at your option) any later version.
13 
14 CoxIter is distributed in the hope that it will be useful,
15 but WITHOUT ANY WARRANTY; without even the implied warranty of
16 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
17 GNU General Public License for more details.
18 
19 You should have received a copy of the GNU General Public License
20 along with CoxIter. If not, see <http://www.gnu.org/licenses/>.
21 */
22 
31 #ifndef APP_H
32 #define APP_H
33 
34 #include <algorithm>
35 #include <chrono>
36 #include <string>
37 #include <vector>
38 
39 #ifdef WIN32
40 #include <io.h>
41 #else
42 #include <unistd.h>
43 #endif
44 
45 #ifdef _COMPILE_WITH_PARI_
46 #include "growthrate.h"
47 #include "signature.h"
48 #endif
49 
50 using namespace std;
51 
52 #include "arithmeticity.h"
53 #include "coxiter.h"
54 #include "index2.h"
55 
56 class App {
57 private:
68  bool computeEuler;
70  bool debug;
71  bool bIndex2;
72  bool useOpenMP;
76  bool bPrintHelp;
80  vector<string> verticesToRemove;
81  vector<string> vertices;
82  string index2vertex_t0;
84  string index2vertex_s0;
86 
87 public:
88  bool bCoutFile;
90  bool bOutputGraph;
91  string inFilename;
94 
95 public:
96  App();
97 
98  bool readMainParameters(int argc, char **argv);
99  void run();
100  void printHelp() const;
101 
102 private:
104 };
105 
106 #endif // APP_H
Main class for the application.
Definition: app.h:56
bool bOutputGraphToDraw
If we write the graph in a file, to use graphviz.
Definition: app.h:89
string inFilename
Path to the graph.
Definition: app.h:91
string index2vertex_t0
Definition: app.h:82
bool checkArithmeticity
Definition: app.h:58
string index2vertex_s0
Definition: app.h:84
vector< string > verticesToRemove
The vertices we want to remove.
Definition: app.h:80
bool computeGrowthRate
If we want to compute the growth rate.
Definition: app.h:67
bool bIndex2
Trying to extract an index two subroup?
Definition: app.h:71
void printHelp() const
bool computeEuler
If we want to compute the Euler characteristic.
Definition: app.h:68
vector< string > vertices
If we specify the vertices.
Definition: app.h:81
bool computeSignature
If we want to compute the signature.
Definition: app.h:69
bool checkCanBeFiniteCovolume
Definition: app.h:60
void extractIndex2Subgroup(CoxIter &ci)
string ouputMathematicalFormat
Definition: app.h:78
bool computeGrowthSeries
If we want compute the growth series.
Definition: app.h:66
bool useOpenMP
Use OpenMP.
Definition: app.h:72
bool printCoxeterMatrix
Print the Coxeter matrix?
Definition: app.h:74
bool printCoxeterGraph
Print the Coxeter graph?
Definition: app.h:73
string outFilenameBasis
Definition: app.h:92
bool printGramMatrix
Print the Gram matrix?
Definition: app.h:75
void run()
bool checkFiniteCovolume
Definition: app.h:64
bool bPrintHelp
Definition: app.h:76
bool bCoutFile
If the output is redirected to a file.
Definition: app.h:88
bool bOutputGraph
If we write the graph in a file, to use with CoxIter.
Definition: app.h:90
bool debug
Display additional information.
Definition: app.h:70
bool checkCocompacity
Definition: app.h:62
Main class for the work.
Definition: coxiter.h:74