1 /*
2 4ti2 -- A software package for algebraic, geometric and combinatorial
3 problems on linear spaces.
4 
5 Copyright (C) 2006 4ti2 team.
6 Main author(s): Peter Malkin.
7 
8 This program is free software; you can redistribute it and/or
9 modify it under the terms of the GNU General Public License
10 as published by the Free Software Foundation; either version 2
11 of the License, or (at your option) any later version.
12 
13 This program is distributed in the hope that it will be useful,
14 but WITHOUT ANY WARRANTY; without even the implied warranty of
15 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
16 GNU General Public License for more details.
17 
18 You should have received a copy of the GNU General Public License
19 along with this program; if not, write to the Free Software
20 Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
21 */
22 
23 #ifndef _4ti2__CircuitOptions_
24 #define _4ti2__CircuitOptions_
25 #include <string>
26 
27 namespace _4ti2_
28 {
29 
30 class CircuitOptions
31 {
32 public:
33     typedef enum {MATRIX, SUPPORT} Algorithm;
34     typedef enum {MAXINTER, MININDEX, MAXCUTOFF, MINCUTOFF} NextColumn;
35     typedef enum {VERBOSE, SILENT} Output;
36 
37     Algorithm algorithm;
38     NextColumn next_column;
39     Output output;
40     std::string filename;
41 
42     void process_options(int argc, char **argv);
43 
44     static CircuitOptions* instance();
45 
46 protected:
47     CircuitOptions();
48     void unrecognised_option_argument(const char* option);
49     static CircuitOptions* o;
50     void print_usage();
51 };
52 
53 } // namespace _4ti2_
54 
55 #endif
56