00001 /* 00002 * piptools.h: this file is part of the FM project. 00003 * 00004 * FM, a fast and optimized C implementation of Fourier-Motzkin 00005 * projection algorithm. 00006 * 00007 * Copyright (C) 2007-2008 Louis-Noel Pouchet 00008 * 00009 * This program is free software; you can redistribute it and/or 00010 * modify it under the terms of the GNU Lesser General Public License 00011 * as published by the Free Software Foundation; either version 3 00012 * of the License, or (at your option) any later version. 00013 * 00014 * The complete GNU Lesser General Public Licence Notice can be found 00015 * as the `COPYING.LESSER' file in the root directory. 00016 * 00017 * Author: 00018 * Louis-Noel Pouchet <Louis-Noel.Pouchet@inria.fr> 00019 * 00020 */ 00021 #ifndef FM_PIPTOOLS_H 00022 # define FM_PIPTOOLS_H 00023 00024 # include <assert.h> 00025 # include <fm/common.h> 00026 00027 /* Must have piplib on the system. */ 00028 00029 // # ifdef HAVE_LIBPIPLIB 00030 00031 # include <piplib/piplib64.h> 00032 00033 # include <fm/system.h> 00034 # include <fm/solution.h> 00035 00036 00037 # define FM_PIPTOOLS_RAT 0 00038 # define FM_PIPTOOLS_INT 1 00039 00040 00041 BEGIN_C_DECLS 00042 00043 extern 00044 int 00045 fm_piptools_check_rat (s_fm_system_t* sys); 00046 00047 extern 00048 int 00049 fm_piptools_check_int (s_fm_system_t* sys); 00050 00051 extern 00052 int 00053 fm_piptools_check (s_fm_system_t* system, int mode); 00054 00055 extern 00056 PipQuast* 00057 fm_piptools_pip (s_fm_system_t* sys, s_fm_system_t* context, int mode); 00058 00059 extern 00060 int 00061 fm_piptools_check_sol (s_fm_solution_t* sol, int mode); 00062 00063 extern 00064 int 00065 fm_piptools_check_sol_msg (char* msg, 00066 FILE* stream, 00067 s_fm_solution_t* sol, 00068 int mode); 00069 00070 extern 00071 int 00072 fm_piptools_pipmatrix_equal (PipMatrix* a, 00073 PipMatrix* b); 00074 00075 extern 00076 PipMatrix* 00077 fm_piptools_st_to_pipmatrix (s_fm_system_t* sys); 00078 00079 extern 00080 s_fm_system_t* 00081 fm_piptools_pm_to_system (PipMatrix* m); 00082 00083 00084 END_C_DECLS 00085 00086 00087 // # endif // HAVE_LIBPIPLIB 00088 00089 #endif // FM_PIPTOOLS_H