00001 /* 00002 * Copyright 2007 Martin von Gagern 00003 * 00004 * 00005 * This file is part of mqn2mps. 00006 * 00007 * mqn2mps is free software; you can redistribute it and/or modify 00008 * it under the terms of the GNU General Public License as published by 00009 * the Free Software Foundation; either version 3 of the License, or 00010 * (at your option) any later version. 00011 * 00012 * mqn2mps is distributed in the hope that it will be useful, 00013 * but WITHOUT ANY WARRANTY; without even the implied warranty of 00014 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 00015 * GNU General Public License for more details. 00016 * 00017 * You should have received a copy of the GNU General Public License 00018 * along with this program. If not, see <http://www.gnu.org/licenses/>. 00019 */ 00020 00021 00022 #include "driver.hh" 00023 00024 /** 00025 * @file 00026 * The main() function and some documentation. 00027 */ 00028 00029 /** 00030 * Startup function. 00031 * Initializes a driver object and calls driver::parse_opts to do 00032 * proceed from there. 00033 * 00034 * @param argc the number of command line arguments. 00035 * @param argv an array of command line arguments. 00036 * @return zero if everything went well, 00037 * otherwise exit() will be called. 00038 */ 00039 int main(int argc, char** argv) { 00040 driver drv; 00041 drv.parse_opts(argc, argv); 00042 return 0; 00043 } 00044 00045 /** 00046 * @mainpage 00047 * 00048 * @section overview Overview 00049 * 00050 * @c mqn2mps is a tool used to transform the problem of %field 00051 * coupling on orbifolds as it arises in string theory. Input is a 00052 * format based on the mathematica output of some existing program. It 00053 * is called MQN here for Mathematica Quantum Numbers. The format of 00054 * this input file can best be read from parser.yy and lexer.lex 00055 * directly, as these source files are authoritative. 00056 * 00057 * The most useful output format is probably MPS, which is a widely 00058 * used exchange format for linear programs, including mixed integer 00059 * programs. This specific output format is written by the class 00060 * mpsgen. However theoutput part of this program is highly modular, 00061 * so other classes derived from mipgen provide other output formats. 00062 * 00063 * The cornerstone of mqn2mps is its driver class. It handles command 00064 * line options, running the input parser and accepting its results, 00065 * and asking the output module to formulate the problem and have it 00066 * written to a file. The main work of this problem formulation part 00067 * of the task lies with the class mipgen, from which all other output 00068 * modules are derived. 00069 * 00070 * Linear programs are usually represented as a matrix of coefficients 00071 * along with names and bounds for both rows and columns. In this 00072 * program, the columns are represented by the field class as the 00073 * contain the description of a quantum %field. The rows are mostly 00074 * described using the constraint class, which expresses an equality 00075 * %constraint. The matrix elements are stored with the fields. 00076 * 00077 * @section History 00078 * 00079 * mqn2mps was developed by <a href="mailto:gagern@fs.tum.de">Martin 00080 * von Gagern</a> at the TU München in 2007, as part of an 00081 * interdisciplinary project on the boundary between his computer 00082 * science major and his physics minor. 00083 */
1.6.0