00001 #include "qs_config.h"
00002 #ifdef HAVE_LIBGMP
00003 #if HAVE_LIBGMP
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027 #ifndef mpf___PRICE_H
00028 #define mpf___PRICE_H
00029
00030 #include "mpf_dstruct.h"
00031 #include "basicdefs.h"
00032
00033 typedef struct mpf_price_res
00034 {
00035 int eindex;
00036 int dir;
00037 int lindex;
00038 int lvstat;
00039 int price_stat;
00040 mpf_t dinfeas;
00041 mpf_t pinfeas;
00042 }
00043 mpf_price_res;
00044
00045 int mpf_ILLprice_test_for_heap (
00046 mpf_lpinfo * const lp,
00047 mpf_price_info * const pinf,
00048 int const nkeys,
00049 mpf_t * keylist,
00050 int const algo,
00051 int const upd),
00052 mpf_ILLprice_build_heap (
00053 mpf_price_info * const pinf,
00054 int const nkeys,
00055 mpf_t * keylist),
00056 mpf_ILLprice_build_pricing_info (
00057 mpf_lpinfo * const lp,
00058 mpf_price_info * const pinf,
00059 int const phase),
00060 mpf_ILLprice_update_pricing_info (
00061 mpf_lpinfo * const lp,
00062 mpf_price_info * const pinf,
00063 int const phase,
00064 mpf_svector * const wz,
00065 int const eindex,
00066 int const lindex,
00067 mpf_t y),
00068 mpf_ILLprice_get_price (
00069 mpf_price_info * const p,
00070 int const phase),
00071 mpf_ILLprice_build_mpartial_info (
00072 mpf_lpinfo * const lp,
00073 mpf_price_info * const pinf,
00074 int const pricetype),
00075 mpf_ILLprice_build_pdevex_norms (
00076 mpf_lpinfo * const lp,
00077 mpf_p_devex_info * const pdinfo,
00078 int const reinit),
00079 mpf_ILLprice_update_pdevex_norms (
00080 mpf_lpinfo * const lp,
00081 mpf_p_devex_info * const pdinfo,
00082 int const eindex,
00083 mpf_t yl),
00084 mpf_ILLprice_build_psteep_norms (
00085 mpf_lpinfo * const lp,
00086 mpf_p_steep_info * const psinfo),
00087 mpf_ILLprice_build_ddevex_norms (
00088 mpf_lpinfo * const lp,
00089 mpf_d_devex_info * const ddinfo,
00090 int const reinit),
00091 mpf_ILLprice_update_ddevex_norms (
00092 mpf_lpinfo * const lp,
00093 mpf_d_devex_info * const ddinfo,
00094 int const eindex,
00095 mpf_t yl),
00096 mpf_ILLprice_build_dsteep_norms (
00097 mpf_lpinfo * const lp,
00098 mpf_d_steep_info * const dsinfo),
00099 mpf_ILLprice_get_dsteep_norms (
00100 mpf_lpinfo * const lp,
00101 int const count,
00102 int *constrowind,
00103 mpf_t * const norms),
00104 mpf_ILLprice_get_rownorms (
00105 mpf_lpinfo * const lp,
00106 mpf_price_info * const pinf,
00107 mpf_t * const rnorms),
00108 mpf_ILLprice_get_colnorms (
00109 mpf_lpinfo * const lp,
00110 mpf_price_info * const pinf,
00111 mpf_t * const cnorms),
00112 mpf_ILLprice_get_newnorms (
00113 mpf_lpinfo * const lp,
00114 int const nelems,
00115 mpf_t * const norms,
00116 int *const matcnt,
00117 int *const matbeg,
00118 int *const matind,
00119 mpf_t * const matval,
00120 int const option),
00121 mpf_ILLprice_get_new_rownorms (
00122 mpf_lpinfo * const lp,
00123 int const newrows,
00124 mpf_t * const rnorms,
00125 int *const rmatcnt,
00126 int *const rmatbeg,
00127 int *const rmatind,
00128 mpf_t * const rmatval),
00129 mpf_ILLprice_get_new_colnorms (
00130 mpf_lpinfo * const lp,
00131 int const newrows,
00132 mpf_t * const rnorms,
00133 int *const matcnt,
00134 int *const matbeg,
00135 int *const matind,
00136 mpf_t * const matval),
00137 mpf_ILLprice_load_rownorms (
00138 mpf_lpinfo * const lp,
00139 mpf_t * const rnorms,
00140 mpf_price_info * const pinf),
00141 mpf_ILLprice_load_colnorms (
00142 mpf_lpinfo * const lp,
00143 mpf_t * const cnorms,
00144 mpf_price_info * const pinf);
00145
00146
00147 void mpf_ILLprice_free_heap (
00148 mpf_price_info * const pinf),
00149 mpf_ILLprice_init_pricing_info (
00150 mpf_price_info * const pinf),
00151 mpf_ILLprice_free_pricing_info (
00152 mpf_price_info * const pinf),
00153 mpf_ILLprice_free_mpartial_info (
00154 mpf_mpart_info * p),
00155 mpf_ILLprice_init_mpartial_price (
00156 mpf_lpinfo * const lp,
00157 mpf_price_info * const pinf,
00158 int const phase,
00159 int const pricetype),
00160 mpf_ILLprice_update_mpartial_price (
00161 mpf_lpinfo * const lp,
00162 mpf_price_info * const pinf,
00163 int const phase,
00164 int const pricetype),
00165 mpf_ILLprice_delete_onempart_price (
00166
00167 mpf_price_info * const pinf,
00168 int const indx,
00169 int const pricetype),
00170 mpf_ILLprice_mpartial_group (
00171 mpf_lpinfo * const lp,
00172 mpf_mpart_info * const p,
00173 int const phase,
00174 int const g,
00175 int const pricetype),
00176 mpf_ILLprice_column (
00177 mpf_lpinfo * const lp,
00178 int const ix,
00179 int const phase,
00180 mpf_price_res * const pr),
00181 mpf_ILLprice_row (
00182 mpf_lpinfo * const lp,
00183 int const ix,
00184 int const phase,
00185 mpf_price_res * const pr),
00186 mpf_ILLprice_update_psteep_norms (
00187 mpf_lpinfo * lp,
00188 mpf_p_steep_info * psinfo,
00189 mpf_svector * wz,
00190 int eindex,
00191 mpf_t yl),
00192 mpf_ILLprice_update_dsteep_norms (
00193 mpf_lpinfo * const lp,
00194 mpf_d_steep_info * const dsinfo,
00195 mpf_svector * const wz,
00196 int const lindex,
00197 mpf_t yl),
00198 mpf_ILLprice_compute_dual_inf (
00199 mpf_lpinfo * const lp,
00200 mpf_price_info * const p,
00201 int *const ix,
00202 int const icnt,
00203 int const phase),
00204 mpf_ILLprice_primal (
00205 mpf_lpinfo * const lp,
00206 mpf_price_info * const pinf,
00207 mpf_price_res * const pr,
00208 int const phase),
00209 mpf_ILLprice_compute_primal_inf (
00210 mpf_lpinfo * const lp,
00211 mpf_price_info * const p,
00212 int *const ix,
00213 int const icnt,
00214 int const phase),
00215 mpf_ILLprice_dual (
00216 mpf_lpinfo * const lp,
00217 mpf_price_info * const pinf,
00218 int const phase,
00219 mpf_price_res * const pr);
00220
00221 void mpf_test_dsteep_norms (
00222 mpf_lpinfo * const lp,
00223 mpf_price_info * const p);
00224
00225 #endif
00226 #endif
00227 #endif