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 __PRICE_H
00025 #define __PRICE_H
00026
00027 #include "dstruct.h"
00028 #include "basicdefs.h"
00029
00030 typedef struct price_res
00031 {
00032 int eindex;
00033 int dir;
00034 int lindex;
00035 int lvstat;
00036 int price_stat;
00037 EGlpNum_t dinfeas;
00038 EGlpNum_t pinfeas;
00039 }
00040 price_res;
00041
00042 int ILLprice_test_for_heap (
00043 lpinfo * const lp,
00044 price_info * const pinf,
00045 int const nkeys,
00046 EGlpNum_t * keylist,
00047 int const algo,
00048 int const upd),
00049 ILLprice_build_heap (
00050 price_info * const pinf,
00051 int const nkeys,
00052 EGlpNum_t * keylist),
00053 ILLprice_build_pricing_info (
00054 lpinfo * const lp,
00055 price_info * const pinf,
00056 int const phase),
00057 ILLprice_update_pricing_info (
00058 lpinfo * const lp,
00059 price_info * const pinf,
00060 int const phase,
00061 svector * const wz,
00062 int const eindex,
00063 int const lindex,
00064 EGlpNum_t y),
00065 ILLprice_get_price (
00066 price_info * const p,
00067 int const phase),
00068 ILLprice_build_mpartial_info (
00069 lpinfo * const lp,
00070 price_info * const pinf,
00071 int const pricetype),
00072 ILLprice_build_pdevex_norms (
00073 lpinfo * const lp,
00074 p_devex_info * const pdinfo,
00075 int const reinit),
00076 ILLprice_update_pdevex_norms (
00077 lpinfo * const lp,
00078 p_devex_info * const pdinfo,
00079 int const eindex,
00080 EGlpNum_t yl),
00081 ILLprice_build_psteep_norms (
00082 lpinfo * const lp,
00083 p_steep_info * const psinfo),
00084 ILLprice_build_ddevex_norms (
00085 lpinfo * const lp,
00086 d_devex_info * const ddinfo,
00087 int const reinit),
00088 ILLprice_update_ddevex_norms (
00089 lpinfo * const lp,
00090 d_devex_info * const ddinfo,
00091 int const eindex,
00092 EGlpNum_t yl),
00093 ILLprice_build_dsteep_norms (
00094 lpinfo * const lp,
00095 d_steep_info * const dsinfo),
00096 ILLprice_get_dsteep_norms (
00097 lpinfo * const lp,
00098 int const count,
00099 int *constrowind,
00100 EGlpNum_t * const norms),
00101 ILLprice_get_rownorms (
00102 lpinfo * const lp,
00103 price_info * const pinf,
00104 EGlpNum_t * const rnorms),
00105 ILLprice_get_colnorms (
00106 lpinfo * const lp,
00107 price_info * const pinf,
00108 EGlpNum_t * const cnorms),
00109 ILLprice_get_newnorms (
00110 lpinfo * const lp,
00111 int const nelems,
00112 EGlpNum_t * const norms,
00113 int *const matcnt,
00114 int *const matbeg,
00115 int *const matind,
00116 EGlpNum_t * const matval,
00117 int const option),
00118 ILLprice_get_new_rownorms (
00119 lpinfo * const lp,
00120 int const newrows,
00121 EGlpNum_t * const rnorms,
00122 int *const rmatcnt,
00123 int *const rmatbeg,
00124 int *const rmatind,
00125 EGlpNum_t * const rmatval),
00126 ILLprice_get_new_colnorms (
00127 lpinfo * const lp,
00128 int const newrows,
00129 EGlpNum_t * const rnorms,
00130 int *const matcnt,
00131 int *const matbeg,
00132 int *const matind,
00133 EGlpNum_t * const matval),
00134 ILLprice_load_rownorms (
00135 lpinfo * const lp,
00136 EGlpNum_t * const rnorms,
00137 price_info * const pinf),
00138 ILLprice_load_colnorms (
00139 lpinfo * const lp,
00140 EGlpNum_t * const cnorms,
00141 price_info * const pinf);
00142
00143
00144 void ILLprice_free_heap (
00145 price_info * const pinf),
00146 ILLprice_init_pricing_info (
00147 price_info * const pinf),
00148 ILLprice_free_pricing_info (
00149 price_info * const pinf),
00150 ILLprice_free_mpartial_info (
00151 mpart_info * p),
00152 ILLprice_init_mpartial_price (
00153 lpinfo * const lp,
00154 price_info * const pinf,
00155 int const phase,
00156 int const pricetype),
00157 ILLprice_update_mpartial_price (
00158 lpinfo * const lp,
00159 price_info * const pinf,
00160 int const phase,
00161 int const pricetype),
00162 ILLprice_delete_onempart_price (
00163
00164 price_info * const pinf,
00165 int const indx,
00166 int const pricetype),
00167 ILLprice_mpartial_group (
00168 lpinfo * const lp,
00169 mpart_info * const p,
00170 int const phase,
00171 int const g,
00172 int const pricetype),
00173 ILLprice_column (
00174 lpinfo * const lp,
00175 int const ix,
00176 int const phase,
00177 price_res * const pr),
00178 ILLprice_row (
00179 lpinfo * const lp,
00180 int const ix,
00181 int const phase,
00182 price_res * const pr),
00183 ILLprice_update_psteep_norms (
00184 lpinfo * lp,
00185 p_steep_info * psinfo,
00186 svector * wz,
00187 int eindex,
00188 EGlpNum_t yl),
00189 ILLprice_update_dsteep_norms (
00190 lpinfo * const lp,
00191 d_steep_info * const dsinfo,
00192 svector * const wz,
00193 int const lindex,
00194 EGlpNum_t yl),
00195 ILLprice_compute_dual_inf (
00196 lpinfo * const lp,
00197 price_info * const p,
00198 int *const ix,
00199 int const icnt,
00200 int const phase),
00201 ILLprice_primal (
00202 lpinfo * const lp,
00203 price_info * const pinf,
00204 price_res * const pr,
00205 int const phase),
00206 ILLprice_compute_primal_inf (
00207 lpinfo * const lp,
00208 price_info * const p,
00209 int *const ix,
00210 int const icnt,
00211 int const phase),
00212 ILLprice_dual (
00213 lpinfo * const lp,
00214 price_info * const pinf,
00215 int const phase,
00216 price_res * const pr);
00217
00218 void test_dsteep_norms (
00219 lpinfo * const lp,
00220 price_info * const p);
00221
00222 #endif