cLurupa.h

Go to the documentation of this file.
00001 /*
00002  * Lurupa, a library for verified linear programming.
00003  * Copyright (C) 2006 by Christian Keil
00004  *
00005  * This file is part of Lurupa.
00006  *
00007  * Lurupa is free software; you can redistribute it and/or
00008  * modify it under the terms of the GNU Lesser General Public
00009  * License as published by the Free Software Foundation; either
00010  * version 2.1 of the License, or (at your option) any later version.
00011  *
00012  * This library 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 GNU
00015  * Lesser General Public License for more details.
00016  *
00017  * You should have received a copy of the GNU Lesser General Public
00018  * License along with this library; if not, write to the Free Software
00019  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301
00020  * USA
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 /* CLURUPA_H */

Generated on Thu Jun 26 18:08:52 2008 for Lurupa by  doxygen 1.5.6