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 ILL_LIB_H
00025 #define ILL_LIB_H
00026
00027 #include "qs_config.h"
00028 #include "lpdefs.h"
00029 #include "lpdata.h"
00030 #include "price.h"
00031 #include "basicdefs.h"
00032
00033
00034
00035
00036
00037
00038
00039
00040
00041
00042
00043
00044
00045 struct itcnt_t;
00046
00047 int ILLlib_optimize ( lpinfo * lp, ILLlp_basis * B, price_info * pinf, int algo,
00048 int *status, int simplex_display, struct itcnt_t*itcnt),
00049 ILLlib_cache_solution ( lpinfo * lp, ILLlp_cache * C),
00050 ILLlib_solution ( lpinfo * lp, ILLlp_cache * C, EGlpNum_t * val,
00051 EGlpNum_t * x, EGlpNum_t * pi, EGlpNum_t * slack, EGlpNum_t * rc),
00052 ILLlib_get_x ( lpinfo * lp, ILLlp_cache * C, EGlpNum_t * x),
00053 ILLlib_get_slack ( lpinfo * lp, ILLlp_cache * C, EGlpNum_t * slack),
00054 ILLlib_objval ( lpinfo * lp, ILLlp_cache * C, EGlpNum_t * val),
00055 ILLlib_tableau ( lpinfo * lp, int row, EGlpNum_t * binv, EGlpNum_t * tabrow),
00056 ILLlib_basis_order ( lpinfo * lp, int *header),
00057 ILLlib_newrow ( lpinfo * lp, ILLlp_basis * B,const EGlpNum_t rhs, int sense,
00058 const EGlpNum_t range, const char *name),
00059 ILLlib_newrows ( lpinfo * lp, ILLlp_basis * B, int num,const EGlpNum_t * rhs,
00060 char *sense, const EGlpNum_t * range, const char **names),
00061 ILLlib_addrow ( lpinfo * lp, ILLlp_basis * B, int cnt, int *ind,
00062 const EGlpNum_t * val, const EGlpNum_t rhs, int sense,const EGlpNum_t range,
00063 const char *rowname),
00064 ILLlib_addrows ( lpinfo * lp, ILLlp_basis * B, int num, int *rmatcnt,
00065 int *rmatbeg, int *rmatind,const EGlpNum_t * rmatval,const EGlpNum_t * rhs,
00066 char *sense, const EGlpNum_t * range, const char **names, int *nofactor),
00067 ILLlib_delrows ( lpinfo * lp, ILLlp_basis * B, ILLlp_cache * C, int num,
00068 int *dellist, int *basis_ok, int *cache_ok),
00069 ILLlib_newcol ( lpinfo * lp, ILLlp_basis * B,const EGlpNum_t obj,
00070 const EGlpNum_t lower,const EGlpNum_t upper, const char *name, int factorok),
00071 ILLlib_newcols ( lpinfo * lp, ILLlp_basis * B, int num, EGlpNum_t * obj,
00072 EGlpNum_t * lower, EGlpNum_t * upper, const char **names, int factorok),
00073 ILLlib_addcol ( lpinfo * lp, ILLlp_basis * B, int cnt, int *ind,
00074 EGlpNum_t * val,const EGlpNum_t obj,const EGlpNum_t lower,const EGlpNum_t upper,
00075 const char *name, int factorok),
00076 ILLlib_addcols ( lpinfo * lp, ILLlp_basis * B, int num, int *cmatcnt,
00077 int *cmatbeg, int *cmatind, EGlpNum_t * cmatval, EGlpNum_t * obj,
00078 EGlpNum_t * lower, EGlpNum_t * upper, const char **names, int factorok),
00079 ILLlib_delcols ( lpinfo * lp, ILLlp_basis * B, int num, int *dellist,
00080 int *basis_ok),
00081 ILLlib_chgcoef ( lpinfo * lp, int rowindex, int colindex, EGlpNum_t coef),
00082 ILLlib_getcoef (lpinfo *lp, int rowindex, int colindex, EGlpNum_t* coef),
00083 ILLlib_chgrange (lpinfo *lp, int indx, EGlpNum_t coef),
00084 ILLlib_chgsense ( lpinfo * lp, int num, int *rowlist, char *sense),
00085 ILLlib_getsenses (lpinfo *lp, char *senses),
00086 ILLlib_getrows ( lpinfo * lp, int num, int *rowlist, int **rowcnt,
00087 int **rowbeg, int **rowind, EGlpNum_t ** rowval, EGlpNum_t ** rhs,
00088 char **sense, EGlpNum_t ** range, char ***names),
00089 ILLlib_getcols ( lpinfo * lp, int num, int *collist, int **colcnt,
00090 int **colbeg, int **colind, EGlpNum_t ** colval, EGlpNum_t ** obj,
00091 EGlpNum_t ** lower, EGlpNum_t ** upper, char ***names),
00092 ILLlib_getobj ( lpinfo * lp, EGlpNum_t * obj),
00093 ILLlib_getobj_list (lpinfo *lp, int num, int* collist, EGlpNum_t* obj),
00094 ILLlib_chgobj ( lpinfo * lp, int indx, EGlpNum_t coef),
00095 ILLlib_getrhs ( lpinfo * lp, EGlpNum_t * rhs),
00096 ILLlib_chgrhs ( lpinfo * lp, int indx, EGlpNum_t coef),
00097 ILLlib_getintflags ( lpinfo * lp, int *intflags),
00098 ILLlib_rownames ( lpinfo * lp, char **rownames),
00099 ILLlib_colnames ( lpinfo * lp, char **colnames),
00100 ILLlib_colindex ( lpinfo * lp, const char *name, int *colindex),
00101 ILLlib_rowindex ( lpinfo * lp, const char *name, int *rowindex),
00102 ILLlib_chgbnd ( lpinfo * lp, int indx, int lu,const EGlpNum_t bnd),
00103 ILLlib_chgbnds ( lpinfo * lp, int cnt, int *indx, char *lu, const EGlpNum_t * bnd),
00104 ILLlib_getbnd ( lpinfo * lp, int indx, int lu, EGlpNum_t * bnd),
00105 ILLlib_getbnds ( lpinfo * lp, EGlpNum_t * lower, EGlpNum_t * upper),
00106 ILLlib_getbnds_list ( lpinfo *lp, int num, int*collist, EGlpNum_t *lower,
00107 EGlpNum_t *upper),
00108 ILLlib_strongbranch ( lpinfo * lp, price_info * pinf, int *candidatelist,
00109 int ncand, EGlpNum_t * xlist, EGlpNum_t * downpen, EGlpNum_t * uppen,
00110 int iterations, EGlpNum_t objbound, struct itcnt_t*itcnt),
00111 ILLlib_getbasis ( lpinfo * lp, char *cstat, char *rstat),
00112 ILLlib_loadbasis ( ILLlp_basis * B, int nstruct, int nrows, char *cstat,
00113 char *rstat),
00114 ILLlib_readbasis ( lpinfo * lp, ILLlp_basis * B, const char *fname),
00115 ILLlib_writebasis ( lpinfo * lp, ILLlp_basis * B, const char *fname),
00116 ILLlib_getrownorms ( lpinfo * lp, price_info * pinf, EGlpNum_t * rownorms),
00117 ILLlib_loadrownorms ( lpinfo * lp, price_info * pinf, EGlpNum_t * rownorms),
00118 ILLlib_recompute_rownorms ( lpinfo * lp, price_info * pinf),
00119 ILLlib_iter ( lpinfo * lp),
00120 ILLlib_print_x ( EGioFile_t * fd, lpinfo * lp, ILLlp_cache * C, EGlpNum_t * x,
00121 int nonZerosOnly),
00122 ILLwrite_lp_file ( ILLlpdata * lp, EGioFile_t * eout, qserror_collector * c);
00123
00124
00125 extern int ILLlib_findName (
00126 ILLlpdata * qslp,
00127 int forRow,
00128 const char *name,
00129 int id,
00130 char buf[ILL_namebufsize]);
00131
00132
00133
00134
00135
00136
00137
00138 int ILLpresolve_add_logicals (
00139 ILLlpdata * lp);
00140
00141
00142
00143
00144
00145
00146
00147
00148 int ILLmip_binary_dfs (
00149 lpinfo * lp);
00150
00151 #endif