00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024 #ifndef dbl_ILL_LIB_H
00025 #define dbl_ILL_LIB_H
00026
00027 #include "dbl_lpdefs.h"
00028 #include "dbl_lpdata.h"
00029 #include "dbl_price.h"
00030 #include "basicdefs.h"
00031
00032
00033
00034
00035
00036
00037
00038
00039
00040
00041
00042
00043
00044 struct itcnt_t;
00045
00046 int dbl_ILLlib_optimize ( dbl_lpinfo * lp, dbl_ILLlp_basis * B, dbl_price_info * pinf, int algo,
00047 int *status, int simplex_display, struct itcnt_t*itcnt),
00048 dbl_ILLlib_cache_solution ( dbl_lpinfo * lp, dbl_ILLlp_cache * C),
00049 dbl_ILLlib_solution ( dbl_lpinfo * lp, dbl_ILLlp_cache * C, double * val,
00050 double * x, double * pi, double * slack, double * rc),
00051 dbl_ILLlib_get_x ( dbl_lpinfo * lp, dbl_ILLlp_cache * C, double * x),
00052 dbl_ILLlib_get_slack ( dbl_lpinfo * lp, dbl_ILLlp_cache * C, double * slack),
00053 dbl_ILLlib_objval ( dbl_lpinfo * lp, dbl_ILLlp_cache * C, double * val),
00054 dbl_ILLlib_tableau ( dbl_lpinfo * lp, int row, double * binv, double * tabrow),
00055 dbl_ILLlib_basis_order ( dbl_lpinfo * lp, int *header),
00056 dbl_ILLlib_newrow ( dbl_lpinfo * lp, dbl_ILLlp_basis * B, double rhs, int sense,
00057 double range, const char *name),
00058 dbl_ILLlib_newrows ( dbl_lpinfo * lp, dbl_ILLlp_basis * B, int num, double * rhs,
00059 char *sense, double * range, const char **names),
00060 dbl_ILLlib_addrow ( dbl_lpinfo * lp, dbl_ILLlp_basis * B, int cnt, int *ind,
00061 double * val, double rhs, int sense, double range,
00062 const char *rowname),
00063 dbl_ILLlib_addrows ( dbl_lpinfo * lp, dbl_ILLlp_basis * B, int num, int *rmatcnt,
00064 int *rmatbeg, int *rmatind, double * rmatval, double * rhs,
00065 char *sense, double * range, const char **names, int *nofactor),
00066 dbl_ILLlib_delrows ( dbl_lpinfo * lp, dbl_ILLlp_basis * B, dbl_ILLlp_cache * C, int num,
00067 int *dellist, int *basis_ok, int *cache_ok),
00068 dbl_ILLlib_newcol ( dbl_lpinfo * lp, dbl_ILLlp_basis * B, double obj,
00069 double lower, double upper, const char *name, int factorok),
00070 dbl_ILLlib_newcols ( dbl_lpinfo * lp, dbl_ILLlp_basis * B, int num, double * obj,
00071 double * lower, double * upper, const char **names, int factorok),
00072 dbl_ILLlib_addcol ( dbl_lpinfo * lp, dbl_ILLlp_basis * B, int cnt, int *ind,
00073 double * val, double obj, double lower, double upper,
00074 const char *name, int factorok),
00075 dbl_ILLlib_addcols ( dbl_lpinfo * lp, dbl_ILLlp_basis * B, int num, int *cmatcnt,
00076 int *cmatbeg, int *cmatind, double * cmatval, double * obj,
00077 double * lower, double * upper, const char **names, int factorok),
00078 dbl_ILLlib_delcols ( dbl_lpinfo * lp, dbl_ILLlp_basis * B, int num, int *dellist,
00079 int *basis_ok),
00080 dbl_ILLlib_chgcoef ( dbl_lpinfo * lp, int rowindex, int colindex, double coef),
00081 dbl_ILLlib_getcoef (dbl_lpinfo *lp, int rowindex, int colindex, double* coef),
00082 dbl_ILLlib_chgrange (dbl_lpinfo *lp, int indx, double coef),
00083 dbl_ILLlib_chgsense ( dbl_lpinfo * lp, int num, int *rowlist, char *sense),
00084 dbl_ILLlib_getsenses (dbl_lpinfo *lp, char *senses),
00085 dbl_ILLlib_getrows ( dbl_lpinfo * lp, int num, int *rowlist, int **rowcnt,
00086 int **rowbeg, int **rowind, double ** rowval, double ** rhs,
00087 char **sense, double ** range, char ***names),
00088 dbl_ILLlib_getcols ( dbl_lpinfo * lp, int num, int *collist, int **colcnt,
00089 int **colbeg, int **colind, double ** colval, double ** obj,
00090 double ** lower, double ** upper, char ***names),
00091 dbl_ILLlib_getobj ( dbl_lpinfo * lp, double * obj),
00092 dbl_ILLlib_getobj_list (dbl_lpinfo *lp, int num, int* collist, double* obj),
00093 dbl_ILLlib_chgobj ( dbl_lpinfo * lp, int indx, double coef),
00094 dbl_ILLlib_getrhs ( dbl_lpinfo * lp, double * rhs),
00095 dbl_ILLlib_chgrhs ( dbl_lpinfo * lp, int indx, double coef),
00096 dbl_ILLlib_getintflags ( dbl_lpinfo * lp, int *intflags),
00097 dbl_ILLlib_rownames ( dbl_lpinfo * lp, char **rownames),
00098 dbl_ILLlib_colnames ( dbl_lpinfo * lp, char **colnames),
00099 dbl_ILLlib_colindex ( dbl_lpinfo * lp, const char *name, int *colindex),
00100 dbl_ILLlib_rowindex ( dbl_lpinfo * lp, const char *name, int *rowindex),
00101 dbl_ILLlib_chgbnd ( dbl_lpinfo * lp, int indx, int lu, double bnd),
00102 dbl_ILLlib_chgbnds ( dbl_lpinfo * lp, int cnt, int *indx, char *lu, double * bnd),
00103 dbl_ILLlib_getbnd ( dbl_lpinfo * lp, int indx, int lu, double * bnd),
00104 dbl_ILLlib_getbnds ( dbl_lpinfo * lp, double * lower, double * upper),
00105 dbl_ILLlib_getbnds_list ( dbl_lpinfo *lp, int num, int*collist, double *lower,
00106 double *upper),
00107 dbl_ILLlib_strongbranch ( dbl_lpinfo * lp, dbl_price_info * pinf, int *candidatelist,
00108 int ncand, double * xlist, double * downpen, double * uppen,
00109 int iterations, double objbound, struct itcnt_t*itcnt),
00110 dbl_ILLlib_getbasis ( dbl_lpinfo * lp, char *cstat, char *rstat),
00111 dbl_ILLlib_loadbasis ( dbl_ILLlp_basis * B, int nstruct, int nrows, char *cstat,
00112 char *rstat),
00113 dbl_ILLlib_readbasis ( dbl_lpinfo * lp, dbl_ILLlp_basis * B, const char *dbl_fname),
00114 dbl_ILLlib_writebasis ( dbl_lpinfo * lp, dbl_ILLlp_basis * B, const char *dbl_fname),
00115 dbl_ILLlib_getrownorms ( dbl_lpinfo * lp, dbl_price_info * pinf, double * rownorms),
00116 dbl_ILLlib_loadrownorms ( dbl_lpinfo * lp, dbl_price_info * pinf, double * rownorms),
00117 dbl_ILLlib_recompute_rownorms ( dbl_lpinfo * lp, dbl_price_info * pinf),
00118 dbl_ILLlib_iter ( dbl_lpinfo * lp),
00119 dbl_ILLlib_print_x ( FILE * fd, dbl_lpinfo * lp, dbl_ILLlp_cache * C, double * x,
00120 int nonZerosOnly),
00121 dbl_ILLwrite_lp_file ( dbl_ILLlpdata * lp, FILE * eout, dbl_qserror_collector * c);
00122
00123
00124 extern int dbl_ILLlib_findName (
00125 dbl_ILLlpdata * qslp,
00126 int forRow,
00127 const char *name,
00128 int id,
00129 char buf[ILL_namebufsize]);
00130
00131
00132
00133
00134
00135
00136
00137 int dbl_ILLpresolve_add_logicals (
00138 dbl_ILLlpdata * lp);
00139
00140
00141
00142
00143
00144
00145
00146
00147 int dbl_ILLmip_binary_dfs (
00148 dbl_lpinfo * lp);
00149
00150 #endif