solver.h

Go to the documentation of this file.
00001 /*
00002  * solver.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) 2006,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_SOLVER_H
00022 # define FM_SOLVER_H
00023 
00024 # include <fm/system.h>
00025 # include <fm/solution.h>
00026 # include <fm/options.h>
00027 
00028 
00029 BEGIN_C_DECLS
00030 
00031 extern
00032 s_fm_solution_t*
00033 fm_solver (s_fm_system_t* system, int solver_type);
00034 
00035 extern
00036 s_fm_solution_t*
00037 fm_solver_solution_at (s_fm_system_t* system, int solver_type, unsigned last);
00038 
00039 extern
00040 s_fm_solution_t*
00041 fm_solver_solution_to (s_fm_system_t* system, int solver_type, unsigned to);
00042 
00043 extern
00044 s_fm_rational_t**
00045 fm_solver_minlexico(s_fm_solution_t* sol, z_type_t min, int is_integral);
00046 
00047 extern
00048 s_fm_rational_t**
00049 fm_solver_maxlexico(s_fm_solution_t* sol, z_type_t max, int is_integral);
00050 
00051 extern
00052 void
00053 fm_solver_compute_min (s_fm_rational_t** lb,
00054                        s_fm_list_t* l,
00055                        s_fm_vector_t* vect,
00056                        unsigned idx,
00057                        int is_int);
00058 
00059 extern
00060 void
00061 fm_solver_compute_max (s_fm_rational_t** Ub,
00062                        s_fm_list_t* l,
00063                        s_fm_vector_t* vect,
00064                        unsigned idx,
00065                        int is_int);
00066 
00067 
00068 s_fm_solution_t*
00069 fm_solver_linind (s_fm_system_t* A);
00070 
00071 int
00072 fm_solver_gauss (s_fm_system_t* A);
00073 
00074 
00075 END_C_DECLS
00076 
00077 
00078 #endif // FM_SOLVER_H

Generated on Fri Oct 31 00:49:13 2008 for FM by  doxygen 1.5.3