00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00033 #ifndef CLURUPA_H
00034 #define CLURUPA_H
00035
00036 #include <lurupa/globals.h>
00037 #include <stdio.h>
00038
00039 #ifdef __cplusplus
00040
00046 typedef Bound_status BOUND_STATUS;
00047 typedef Solver_status SOLVER_STATUS;
00048 typedef bool BOOL;
00049 class Lp;
00050 typedef Lp *PLP;
00052 #else
00053
00059 typedef enum Bound_status BOUND_STATUS;
00060 typedef enum Solver_status SOLVER_STATUS;
00061 typedef char BOOL;
00062 typedef void *PLP;
00064 #endif
00065
00067 void clu_init();
00069 void clu_cleanup();
00070
00072 const char *clu_get_core_version();
00073
00075 double clu_get_alpha();
00077 void clu_set_alpha(double alpha);
00078
00080 double clu_get_eta();
00082 void clu_set_eta(double eta);
00083
00085 BOOL clu_is_inflate();
00087 void clu_set_inflate(BOOL inflate);
00088
00090 BOOL clu_set_module(char *module_path);
00091
00093 const char *clu_get_module_version();
00094
00096 void clu_print_module_options();
00097
00099 double clu_get_solver_eps();
00100
00102 BOUND_STATUS clu_lower_bound(PLP Lp, double *bound, int *iterations);
00103
00105 BOUND_STATUS clu_upper_bound(PLP Lp, double *bound, int *iterations);
00106
00108 char *clu_get_lp_name(PLP Lp);
00109
00111 BOOL clu_is_lp_maximize(PLP Lp);
00112
00114 PLP clu_read_lp(FILE *in, const double relative_interval_radius);
00115
00117 BOOL clu_set_solution(PLP Lp, void *p);
00118
00120 BOOL clu_set_lp(PLP *lp, const double relative_interval_radius);
00121
00123 BOOL clu_set_module_options(PLP Lp, int argc, char *argv[]);
00124
00126 BOOL clu_solve_lp(double *optimal_value, SOLVER_STATUS *status);
00127
00128 #endif