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 "qs_config.h"
00028 #include "dbl_lpdefs.h"
00029 #include "dbl_lpdata.h"
00030 #include "dbl_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 dbl_ILLlib_optimize ( dbl_lpinfo * lp, dbl_ILLlp_basis * B, dbl_price_info * pinf, int algo,
00048 int *status, int simplex_display, struct itcnt_t*itcnt),
00049 dbl_ILLlib_cache_solution ( dbl_lpinfo * lp, dbl_ILLlp_cache * C),
00050 dbl_ILLlib_solution ( dbl_lpinfo * lp, dbl_ILLlp_cache * C, double * val,
00051 double * x, double * pi, double * slack, double * rc),
00052 dbl_ILLlib_get_x ( dbl_lpinfo * lp, dbl_ILLlp_cache * C, double * x),
00053 dbl_ILLlib_get_slack ( dbl_lpinfo * lp, dbl_ILLlp_cache * C, double * slack),
00054 dbl_ILLlib_objval ( dbl_lpinfo * lp, dbl_ILLlp_cache * C, double * val),
00055 dbl_ILLlib_tableau ( dbl_lpinfo * lp, int row, double * binv, double * tabrow),
00056 dbl_ILLlib_basis_order ( dbl_lpinfo * lp, int *header),
00057 dbl_ILLlib_newrow ( dbl_lpinfo * lp, dbl_ILLlp_basis * B,const double rhs, int sense,
00058 const double range, const char *name),
00059 dbl_ILLlib_newrows ( dbl_lpinfo * lp, dbl_ILLlp_basis * B, int num,const double * rhs,
00060 char *sense, const double * range, const char **names),
00061 dbl_ILLlib_addrow ( dbl_lpinfo * lp, dbl_ILLlp_basis * B, int cnt, int *ind,
00062 const double * val, const double rhs, int sense,const double range,
00063 const char *rowname),
00064 dbl_ILLlib_addrows ( dbl_lpinfo * lp, dbl_ILLlp_basis * B, int num, int *rmatcnt,
00065 int *rmatbeg, int *rmatind,const double * rmatval,const double * rhs,
00066 char *sense, const double * range, const char **names, int *nofactor),
00067 dbl_ILLlib_delrows ( dbl_lpinfo * lp, dbl_ILLlp_basis * B, dbl_ILLlp_cache * C, int num,
00068 int *dellist, int *basis_ok, int *cache_ok),
00069 dbl_ILLlib_newcol ( dbl_lpinfo * lp, dbl_ILLlp_basis * B,const double obj,
00070 const double lower,const double upper, const char *name, int factorok),
00071 dbl_ILLlib_newcols ( dbl_lpinfo * lp, dbl_ILLlp_basis * B, int num, double * obj,
00072 double * lower, double * upper, const char **names, int factorok),
00073 dbl_ILLlib_addcol ( dbl_lpinfo * lp, dbl_ILLlp_basis * B, int cnt, int *ind,
00074 double * val,const double obj,const double lower,const double upper,
00075 const char *name, int factorok),
00076 dbl_ILLlib_addcols ( dbl_lpinfo * lp, dbl_ILLlp_basis * B, int num, int *cmatcnt,
00077 int *cmatbeg, int *cmatind, double * cmatval, double * obj,
00078 double * lower, double * upper, const char **names, int factorok),
00079 dbl_ILLlib_delcols ( dbl_lpinfo * lp, dbl_ILLlp_basis * B, int num, int *dellist,
00080 int *basis_ok),
00081 dbl_ILLlib_chgcoef ( dbl_lpinfo * lp, int rowindex, int colindex, double coef),
00082 dbl_ILLlib_getcoef (dbl_lpinfo *lp, int rowindex, int colindex, double* coef),
00083 dbl_ILLlib_chgrange (dbl_lpinfo *lp, int indx, double coef),
00084 dbl_ILLlib_chgsense ( dbl_lpinfo * lp, int num, int *rowlist, char *sense),
00085 dbl_ILLlib_getsenses (dbl_lpinfo *lp, char *senses),
00086 dbl_ILLlib_getrows ( dbl_lpinfo * lp, int num, int *rowlist, int **rowcnt,
00087 int **rowbeg, int **rowind, double ** rowval, double ** rhs,
00088 char **sense, double ** range, char ***names),
00089 dbl_ILLlib_getcols ( dbl_lpinfo * lp, int num, int *collist, int **colcnt,
00090 int **colbeg, int **colind, double ** colval, double ** obj,
00091 double ** lower, double ** upper, char ***names),
00092 dbl_ILLlib_getobj ( dbl_lpinfo * lp, double * obj),
00093 dbl_ILLlib_getobj_list (dbl_lpinfo *lp, int num, int* collist, double* obj),
00094 dbl_ILLlib_chgobj ( dbl_lpinfo * lp, int indx, double coef),
00095 dbl_ILLlib_getrhs ( dbl_lpinfo * lp, double * rhs),
00096 dbl_ILLlib_chgrhs ( dbl_lpinfo * lp, int indx, double coef),
00097 dbl_ILLlib_getintflags ( dbl_lpinfo * lp, int *intflags),
00098 dbl_ILLlib_rownames ( dbl_lpinfo * lp, char **rownames),
00099 dbl_ILLlib_colnames ( dbl_lpinfo * lp, char **colnames),
00100 dbl_ILLlib_colindex ( dbl_lpinfo * lp, const char *name, int *colindex),
00101 dbl_ILLlib_rowindex ( dbl_lpinfo * lp, const char *name, int *rowindex),
00102 dbl_ILLlib_chgbnd ( dbl_lpinfo * lp, int indx, int lu,const double bnd),
00103 dbl_ILLlib_chgbnds ( dbl_lpinfo * lp, int cnt, int *indx, char *lu, const double * bnd),
00104 dbl_ILLlib_getbnd ( dbl_lpinfo * lp, int indx, int lu, double * bnd),
00105 dbl_ILLlib_getbnds ( dbl_lpinfo * lp, double * lower, double * upper),
00106 dbl_ILLlib_getbnds_list ( dbl_lpinfo *lp, int num, int*collist, double *lower,
00107 double *upper),
00108 dbl_ILLlib_strongbranch ( dbl_lpinfo * lp, dbl_price_info * pinf, int *candidatelist,
00109 int ncand, double * xlist, double * downpen, double * uppen,
00110 int iterations, double objbound, struct itcnt_t*itcnt),
00111 dbl_ILLlib_getbasis ( dbl_lpinfo * lp, char *cstat, char *rstat),
00112 dbl_ILLlib_loadbasis ( dbl_ILLlp_basis * B, int nstruct, int nrows, char *cstat,
00113 char *rstat),
00114 dbl_ILLlib_readbasis ( dbl_lpinfo * lp, dbl_ILLlp_basis * B, const char *dbl_fname),
00115 dbl_ILLlib_writebasis ( dbl_lpinfo * lp, dbl_ILLlp_basis * B, const char *dbl_fname),
00116 dbl_ILLlib_getrownorms ( dbl_lpinfo * lp, dbl_price_info * pinf, double * rownorms),
00117 dbl_ILLlib_loadrownorms ( dbl_lpinfo * lp, dbl_price_info * pinf, double * rownorms),
00118 dbl_ILLlib_recompute_rownorms ( dbl_lpinfo * lp, dbl_price_info * pinf),
00119 dbl_ILLlib_iter ( dbl_lpinfo * lp),
00120 dbl_ILLlib_print_x ( EGioFile_t * fd, dbl_lpinfo * lp, dbl_ILLlp_cache * C, double * x,
00121 int nonZerosOnly),
00122 dbl_ILLwrite_lp_file ( dbl_ILLlpdata * lp, EGioFile_t * eout, dbl_qserror_collector * c);
00123
00124
00125 extern int dbl_ILLlib_findName (
00126 dbl_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 dbl_ILLpresolve_add_logicals (
00139 dbl_ILLlpdata * lp);
00140
00141
00142
00143
00144
00145
00146
00147
00148 int dbl_ILLmip_binary_dfs (
00149 dbl_lpinfo * lp);
00150
00151 #endif