/home/coin/SVN-release/CoinAll-1.1.0/SYMPHONY/include/symphony_api.h

Go to the documentation of this file.
00001 /*===========================================================================*/
00002 /*                                                                           */
00003 /* This file is part of the SYMPHONY MILP Solver Framework.                  */
00004 /*                                                                           */
00005 /* SYMPHONY was jointly developed by Ted Ralphs (tkralphs@lehigh.edu) and    */
00006 /* Laci Ladanyi (ladanyi@us.ibm.com).                                        */
00007 /*                                                                           */
00008 /* (c) Copyright 2005 Ted Ralphs. All Rights Reserved.                       */
00009 /*                                                                           */
00010 /* This software is licensed under the Common Public License. Please see     */
00011 /* accompanying file for terms.                                              */
00012 /*                                                                           */
00013 /*===========================================================================*/
00014 
00015 #ifndef _API_H
00016 #define _API_H
00017 
00018 #define COMPILING_FOR_MASTER
00019 
00020 #include "sym_proto.h"
00021 #include "sym_master.h"
00022 #include "sym_messages.h"
00023 
00024 /*===========================================================================*/
00025 /*===================== Interface functions (master.c) ======================*/
00026 /*===========================================================================*/
00027 
00028 sym_environment *sym_open_environment PROTO((void));
00029 int sym_set_defaults PROTO((sym_environment *env));
00030 int sym_parse_command_line PROTO((sym_environment *env, int argc, 
00031                                   char **argv));
00032 int sym_set_user_data PROTO((sym_environment *env, void *user));
00033 int sym_get_user_data PROTO((sym_environment *env, void **user));
00034 int sym_read_mps PROTO((sym_environment *env, char *infile));
00035 int sym_read_gmpl PROTO((sym_environment *env, char *modelfile, 
00036                          char *datafile));
00037 int sym_load_problem PROTO((sym_environment *env));
00038 int sym_find_initial_bounds PROTO((sym_environment *env));
00039 
00040 int sym_solve PROTO((sym_environment *env));
00041 int sym_warm_solve PROTO((sym_environment *env));
00042 int sym_mc_solve PROTO((sym_environment *env));
00043 
00044 int sym_create_permanent_cut_pools PROTO((sym_environment *env, int *cp_num));
00045 int sym_close_environment PROTO((sym_environment *env));
00046 int sym_explicit_load_problem PROTO((sym_environment *env, int numcols, 
00047                                      int numrows, int *start, int *index, 
00048                                      double *value, double *collb,
00049                                      double *colub, char *is_int, double *obj,
00050                                      double *obj2, char *rowsen,
00051                                      double *rowrhs, double *rowrng,
00052                                      char make_copy));   
00053 
00054 int sym_is_abandoned PROTO((sym_environment *env));
00055 int sym_is_proven_optimal PROTO((sym_environment *env));
00056 int sym_is_proven_primal_infeasible PROTO((sym_environment *env));       
00057 int sym_is_iteration_limit_reached PROTO((sym_environment *env)); 
00058 int sym_is_time_limit_reached PROTO((sym_environment *env));
00059 int sym_is_target_gap_achieved PROTO((sym_environment *env));
00060 
00061 int sym_get_status PROTO((sym_environment *env));
00062 int sym_get_num_cols PROTO((sym_environment *env, int *numcols));
00063 int sym_get_num_rows PROTO((sym_environment *env, int *numrows));
00064 int sym_get_num_elements PROTO((sym_environment *env, int *numelems));
00065 int sym_get_col_lower PROTO((sym_environment *env, double *collb));
00066 int sym_get_col_upper PROTO((sym_environment *env, double *colub));
00067 int sym_get_row_sense PROTO((sym_environment *env, char *rowsen));
00068 int sym_get_rhs PROTO((sym_environment *env, double *rowrhs));
00069 int sym_get_matrix PROTO((sym_environment *env, int *nz, int *matbeg, 
00070                           int *matind, double *matval));
00071 int sym_get_row_range PROTO((sym_environment *env, double *rowrng));
00072 int sym_get_row_lower PROTO((sym_environment *env, double *rowlb));
00073 int sym_get_row_upper PROTO((sym_environment *env, double *rowub));
00074 int sym_get_obj_coeff PROTO((sym_environment *env, double *obj));
00075 int sym_get_obj2_coeff PROTO((sym_environment *env, double *obj2));
00076 int sym_get_obj_sense PROTO((sym_environment *env, int *sense));
00077 
00078 int sym_is_continuous PROTO((sym_environment *env, int index, int *value));
00079 int sym_is_binary PROTO((sym_environment *env, int index, int *value));
00080 int sym_is_integer PROTO((sym_environment *env, int index, int *value));
00081 
00082 double sym_get_infinity PROTO(());
00083 
00084 int sym_get_col_solution PROTO((sym_environment *env, double *colsol));
00085 int sym_get_row_activity PROTO((sym_environment *env, double *rowact));
00086 int sym_get_obj_val PROTO((sym_environment *env, double *objval));
00087 int sym_get_primal_bound PROTO((sym_environment *env, double *ub));
00088 int sym_get_iteration_count PROTO((sym_environment *env, int *numnodes));
00089 
00090 int sym_set_obj_coeff PROTO((sym_environment *env, int index, double value));
00091 int sym_set_obj2_coeff PROTO((sym_environment *env, int index, double value));
00092 int sym_set_col_lower PROTO((sym_environment *env, int index, double value));
00093 int sym_set_col_upper PROTO((sym_environment *env, int index, double value));
00094 int sym_set_row_lower PROTO((sym_environment *env, int index, double value));
00095 int sym_set_row_upper PROTO((sym_environment *env, int index, double value));
00096 int sym_set_row_type PROTO((sym_environment *env, int index, char rowsense, 
00097                              double rowrhs, double rowrng));
00098 int sym_set_obj_sense PROTO((sym_environment *env, int sense));
00099 int sym_set_col_solution PROTO((sym_environment *env, double * colsol));
00100 int sym_set_primal_bound PROTO((sym_environment *env, double bound));
00101 int sym_set_continuous PROTO((sym_environment *env, int index));
00102 int sym_set_integer PROTO((sym_environment *env, int index));
00103 int sym_set_col_names PROTO((sym_environment *env, char **colname));
00104 int sym_add_col PROTO((sym_environment *env, int numelems, int *indices, 
00105                        double *elements, double collb, double colub,
00106                        double obj, char is_int, char *name));
00107 int sym_add_row PROTO((sym_environment *env, int numelems, int *indices, 
00108                        double *elements, char rowsen, double rowrhs,
00109                        double rowrng));
00110 int sym_delete_cols PROTO((sym_environment *env, int num, int * indices));
00111 int sym_delete_rows PROTO((sym_environment *env, int num, int * indices));
00112 
00113 int sym_write_warm_start_desc PROTO((warm_start_desc *ws, char *file));
00114 warm_start_desc *sym_read_warm_start PROTO((char *file));
00115 
00116 void sym_delete_warm_start PROTO((warm_start_desc *ws));
00117 warm_start_desc *sym_get_warm_start PROTO((sym_environment *env, 
00118                                            int copy_warm_start));
00119 
00120 int sym_set_warm_start PROTO((sym_environment *env, warm_start_desc *ws));
00121 
00122 int sym_set_int_param PROTO((sym_environment *env, const char *key, int value));
00123 int sym_set_dbl_param PROTO((sym_environment *env, const char *key, double value));
00124 int sym_set_str_param PROTO((sym_environment *env, const char *key, const char *value));
00125 
00126 int sym_get_int_param PROTO((sym_environment *env, const char *key, int *value));
00127 int sym_get_dbl_param PROTO((sym_environment *env, const char *key, double *value));
00128 int sym_get_str_param PROTO((sym_environment *env, const char *key, char **value));
00129 
00130 int sym_get_lb_for_new_rhs PROTO((sym_environment *env, int cnt, 
00131                                   int *new_rhs_ind, double *new_rhs_val,
00132                                   double *lb_for_new_rhs));
00133 int sym_get_ub_for_new_rhs PROTO((sym_environment *env, int cnt, 
00134                                   int *new_rhs_ind, double *new_rhs_val,
00135                                   double *ub_for_new_rhs));
00136 #if 0
00137 int sym_get_lb_for_new_obj PROTO((sym_environment *env, int cnt, 
00138                                   int *new_obj_ind, double *new_obj_val,
00139                                   double *lb_for_new_obj));
00140 #endif
00141 int sym_get_ub_for_new_obj PROTO((sym_environment *env, int cnt, 
00142                                   int *new_obj_ind, double *new_obj_val,
00143                                   double *ub_for_new_obj));
00144                                      
00145 warm_start_desc *sym_create_copy_warm_start PROTO((warm_start_desc * ws));
00146 MIPdesc *sym_create_copy_mip_desc PROTO((sym_environment *env));
00147 sym_environment * sym_create_copy_environment PROTO((sym_environment *env));
00148 
00149 int sym_test PROTO((sym_environment *env));
00150 
00151 #endif

Generated on Sun Nov 14 14:06:42 2010 for Coin-All by  doxygen 1.4.7