00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
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