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