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___PRICE_H
00025 #define dbl___PRICE_H
00026
00027 #include "dbl_dstruct.h"
00028 #include "basicdefs.h"
00029
00030 typedef struct dbl_price_res
00031 {
00032 int eindex;
00033 int dir;
00034 int lindex;
00035 int lvstat;
00036 int price_stat;
00037 double dinfeas;
00038 double pinfeas;
00039 }
00040 dbl_price_res;
00041
00042 int dbl_ILLprice_test_for_heap (
00043 dbl_lpinfo * const lp,
00044 dbl_price_info * const pinf,
00045 int const nkeys,
00046 double * keylist,
00047 int const algo,
00048 int const upd),
00049 dbl_ILLprice_build_heap (
00050 dbl_price_info * const pinf,
00051 int const nkeys,
00052 double * keylist),
00053 dbl_ILLprice_build_pricing_info (
00054 dbl_lpinfo * const lp,
00055 dbl_price_info * const pinf,
00056 int const phase),
00057 dbl_ILLprice_update_pricing_info (
00058 dbl_lpinfo * const lp,
00059 dbl_price_info * const pinf,
00060 int const phase,
00061 dbl_svector * const wz,
00062 int const eindex,
00063 int const lindex,
00064 double y),
00065 dbl_ILLprice_get_price (
00066 dbl_price_info * const p,
00067 int const phase),
00068 dbl_ILLprice_build_mpartial_info (
00069 dbl_lpinfo * const lp,
00070 dbl_price_info * const pinf,
00071 int const pricetype),
00072 dbl_ILLprice_build_pdevex_norms (
00073 dbl_lpinfo * const lp,
00074 dbl_p_devex_info * const pdinfo,
00075 int const reinit),
00076 dbl_ILLprice_update_pdevex_norms (
00077 dbl_lpinfo * const lp,
00078 dbl_p_devex_info * const pdinfo,
00079 int const eindex,
00080 double yl),
00081 dbl_ILLprice_build_psteep_norms (
00082 dbl_lpinfo * const lp,
00083 dbl_p_steep_info * const psinfo),
00084 dbl_ILLprice_build_ddevex_norms (
00085 dbl_lpinfo * const lp,
00086 dbl_d_devex_info * const ddinfo,
00087 int const reinit),
00088 dbl_ILLprice_update_ddevex_norms (
00089 dbl_lpinfo * const lp,
00090 dbl_d_devex_info * const ddinfo,
00091 int const eindex,
00092 double yl),
00093 dbl_ILLprice_build_dsteep_norms (
00094 dbl_lpinfo * const lp,
00095 dbl_d_steep_info * const dsinfo),
00096 dbl_ILLprice_get_dsteep_norms (
00097 dbl_lpinfo * const lp,
00098 int const count,
00099 int *constrowind,
00100 double * const norms),
00101 dbl_ILLprice_get_rownorms (
00102 dbl_lpinfo * const lp,
00103 dbl_price_info * const pinf,
00104 double * const rnorms),
00105 dbl_ILLprice_get_colnorms (
00106 dbl_lpinfo * const lp,
00107 dbl_price_info * const pinf,
00108 double * const cnorms),
00109 dbl_ILLprice_get_newnorms (
00110 dbl_lpinfo * const lp,
00111 int const nelems,
00112 double * const norms,
00113 int *const matcnt,
00114 int *const matbeg,
00115 int *const matind,
00116 double * const matval,
00117 int const option),
00118 dbl_ILLprice_get_new_rownorms (
00119 dbl_lpinfo * const lp,
00120 int const newrows,
00121 double * const rnorms,
00122 int *const rmatcnt,
00123 int *const rmatbeg,
00124 int *const rmatind,
00125 double * const rmatval),
00126 dbl_ILLprice_get_new_colnorms (
00127 dbl_lpinfo * const lp,
00128 int const newrows,
00129 double * const rnorms,
00130 int *const matcnt,
00131 int *const matbeg,
00132 int *const matind,
00133 double * const matval),
00134 dbl_ILLprice_load_rownorms (
00135 dbl_lpinfo * const lp,
00136 double * const rnorms,
00137 dbl_price_info * const pinf),
00138 dbl_ILLprice_load_colnorms (
00139 dbl_lpinfo * const lp,
00140 double * const cnorms,
00141 dbl_price_info * const pinf);
00142
00143
00144 void dbl_ILLprice_free_heap (
00145 dbl_price_info * const pinf),
00146 dbl_ILLprice_init_pricing_info (
00147 dbl_price_info * const pinf),
00148 dbl_ILLprice_free_pricing_info (
00149 dbl_price_info * const pinf),
00150 dbl_ILLprice_free_mpartial_info (
00151 dbl_mpart_info * p),
00152 dbl_ILLprice_init_mpartial_price (
00153 dbl_lpinfo * const lp,
00154 dbl_price_info * const pinf,
00155 int const phase,
00156 int const pricetype),
00157 dbl_ILLprice_update_mpartial_price (
00158 dbl_lpinfo * const lp,
00159 dbl_price_info * const pinf,
00160 int const phase,
00161 int const pricetype),
00162 dbl_ILLprice_delete_onempart_price (
00163 dbl_lpinfo * const lp,
00164 dbl_price_info * const pinf,
00165 int const indx,
00166 int const pricetype),
00167 dbl_ILLprice_mpartial_group (
00168 dbl_lpinfo * const lp,
00169 dbl_mpart_info * const p,
00170 int const phase,
00171 int const g,
00172 int const pricetype),
00173 dbl_ILLprice_column (
00174 dbl_lpinfo * const lp,
00175 int const ix,
00176 int const phase,
00177 dbl_price_res * const pr),
00178 dbl_ILLprice_row (
00179 dbl_lpinfo * const lp,
00180 int const ix,
00181 int const phase,
00182 dbl_price_res * const pr),
00183 dbl_ILLprice_update_psteep_norms (
00184 dbl_lpinfo * lp,
00185 dbl_p_steep_info * psinfo,
00186 dbl_svector * wz,
00187 int eindex,
00188 double yl),
00189 dbl_ILLprice_update_dsteep_norms (
00190 dbl_lpinfo * const lp,
00191 dbl_d_steep_info * const dsinfo,
00192 dbl_svector * const wz,
00193 int const lindex,
00194 double yl),
00195 dbl_ILLprice_compute_dual_inf (
00196 dbl_lpinfo * const lp,
00197 dbl_price_info * const p,
00198 int *const ix,
00199 int const icnt,
00200 int const phase),
00201 dbl_ILLprice_primal (
00202 dbl_lpinfo * const lp,
00203 dbl_price_info * const pinf,
00204 dbl_price_res * const pr,
00205 int const phase),
00206 dbl_ILLprice_compute_primal_inf (
00207 dbl_lpinfo * const lp,
00208 dbl_price_info * const p,
00209 int *const ix,
00210 int const icnt,
00211 int const phase),
00212 dbl_ILLprice_dual (
00213 dbl_lpinfo * const lp,
00214 dbl_price_info * const pinf,
00215 int const phase,
00216 dbl_price_res * const pr);
00217
00218 void dbl_test_dsteep_norms (
00219 dbl_lpinfo * const lp,
00220 dbl_price_info * const p);
00221
00222 #endif