00001 #include "qs_config.h"
00002 #ifdef HAVE_LONG_DOUBLE
00003 #if HAVE_LONG_DOUBLE
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 ldbl___PRICE_H
00028 #define ldbl___PRICE_H
00029
00030 #include "ldbl_dstruct.h"
00031 #include "basicdefs.h"
00032
00033 typedef struct ldbl_price_res
00034 {
00035 int eindex;
00036 int dir;
00037 int lindex;
00038 int lvstat;
00039 int price_stat;
00040 long double dinfeas;
00041 long double pinfeas;
00042 }
00043 ldbl_price_res;
00044
00045 int ldbl_ILLprice_test_for_heap (
00046 ldbl_lpinfo * const lp,
00047 ldbl_price_info * const pinf,
00048 int const nkeys,
00049 long double * keylist,
00050 int const algo,
00051 int const upd),
00052 ldbl_ILLprice_build_heap (
00053 ldbl_price_info * const pinf,
00054 int const nkeys,
00055 long double * keylist),
00056 ldbl_ILLprice_build_pricing_info (
00057 ldbl_lpinfo * const lp,
00058 ldbl_price_info * const pinf,
00059 int const phase),
00060 ldbl_ILLprice_update_pricing_info (
00061 ldbl_lpinfo * const lp,
00062 ldbl_price_info * const pinf,
00063 int const phase,
00064 ldbl_svector * const wz,
00065 int const eindex,
00066 int const lindex,
00067 long double y),
00068 ldbl_ILLprice_get_price (
00069 ldbl_price_info * const p,
00070 int const phase),
00071 ldbl_ILLprice_build_mpartial_info (
00072 ldbl_lpinfo * const lp,
00073 ldbl_price_info * const pinf,
00074 int const pricetype),
00075 ldbl_ILLprice_build_pdevex_norms (
00076 ldbl_lpinfo * const lp,
00077 ldbl_p_devex_info * const pdinfo,
00078 int const reinit),
00079 ldbl_ILLprice_update_pdevex_norms (
00080 ldbl_lpinfo * const lp,
00081 ldbl_p_devex_info * const pdinfo,
00082 int const eindex,
00083 long double yl),
00084 ldbl_ILLprice_build_psteep_norms (
00085 ldbl_lpinfo * const lp,
00086 ldbl_p_steep_info * const psinfo),
00087 ldbl_ILLprice_build_ddevex_norms (
00088 ldbl_lpinfo * const lp,
00089 ldbl_d_devex_info * const ddinfo,
00090 int const reinit),
00091 ldbl_ILLprice_update_ddevex_norms (
00092 ldbl_lpinfo * const lp,
00093 ldbl_d_devex_info * const ddinfo,
00094 int const eindex,
00095 long double yl),
00096 ldbl_ILLprice_build_dsteep_norms (
00097 ldbl_lpinfo * const lp,
00098 ldbl_d_steep_info * const dsinfo),
00099 ldbl_ILLprice_get_dsteep_norms (
00100 ldbl_lpinfo * const lp,
00101 int const count,
00102 int *constrowind,
00103 long double * const norms),
00104 ldbl_ILLprice_get_rownorms (
00105 ldbl_lpinfo * const lp,
00106 ldbl_price_info * const pinf,
00107 long double * const rnorms),
00108 ldbl_ILLprice_get_colnorms (
00109 ldbl_lpinfo * const lp,
00110 ldbl_price_info * const pinf,
00111 long double * const cnorms),
00112 ldbl_ILLprice_get_newnorms (
00113 ldbl_lpinfo * const lp,
00114 int const nelems,
00115 long double * const norms,
00116 int *const matcnt,
00117 int *const matbeg,
00118 int *const matind,
00119 long double * const matval,
00120 int const option),
00121 ldbl_ILLprice_get_new_rownorms (
00122 ldbl_lpinfo * const lp,
00123 int const newrows,
00124 long double * const rnorms,
00125 int *const rmatcnt,
00126 int *const rmatbeg,
00127 int *const rmatind,
00128 long double * const rmatval),
00129 ldbl_ILLprice_get_new_colnorms (
00130 ldbl_lpinfo * const lp,
00131 int const newrows,
00132 long double * const rnorms,
00133 int *const matcnt,
00134 int *const matbeg,
00135 int *const matind,
00136 long double * const matval),
00137 ldbl_ILLprice_load_rownorms (
00138 ldbl_lpinfo * const lp,
00139 long double * const rnorms,
00140 ldbl_price_info * const pinf),
00141 ldbl_ILLprice_load_colnorms (
00142 ldbl_lpinfo * const lp,
00143 long double * const cnorms,
00144 ldbl_price_info * const pinf);
00145
00146
00147 void ldbl_ILLprice_free_heap (
00148 ldbl_price_info * const pinf),
00149 ldbl_ILLprice_init_pricing_info (
00150 ldbl_price_info * const pinf),
00151 ldbl_ILLprice_free_pricing_info (
00152 ldbl_price_info * const pinf),
00153 ldbl_ILLprice_free_mpartial_info (
00154 ldbl_mpart_info * p),
00155 ldbl_ILLprice_init_mpartial_price (
00156 ldbl_lpinfo * const lp,
00157 ldbl_price_info * const pinf,
00158 int const phase,
00159 int const pricetype),
00160 ldbl_ILLprice_update_mpartial_price (
00161 ldbl_lpinfo * const lp,
00162 ldbl_price_info * const pinf,
00163 int const phase,
00164 int const pricetype),
00165 ldbl_ILLprice_delete_onempart_price (
00166
00167 ldbl_price_info * const pinf,
00168 int const indx,
00169 int const pricetype),
00170 ldbl_ILLprice_mpartial_group (
00171 ldbl_lpinfo * const lp,
00172 ldbl_mpart_info * const p,
00173 int const phase,
00174 int const g,
00175 int const pricetype),
00176 ldbl_ILLprice_column (
00177 ldbl_lpinfo * const lp,
00178 int const ix,
00179 int const phase,
00180 ldbl_price_res * const pr),
00181 ldbl_ILLprice_row (
00182 ldbl_lpinfo * const lp,
00183 int const ix,
00184 int const phase,
00185 ldbl_price_res * const pr),
00186 ldbl_ILLprice_update_psteep_norms (
00187 ldbl_lpinfo * lp,
00188 ldbl_p_steep_info * psinfo,
00189 ldbl_svector * wz,
00190 int eindex,
00191 long double yl),
00192 ldbl_ILLprice_update_dsteep_norms (
00193 ldbl_lpinfo * const lp,
00194 ldbl_d_steep_info * const dsinfo,
00195 ldbl_svector * const wz,
00196 int const lindex,
00197 long double yl),
00198 ldbl_ILLprice_compute_dual_inf (
00199 ldbl_lpinfo * const lp,
00200 ldbl_price_info * const p,
00201 int *const ix,
00202 int const icnt,
00203 int const phase),
00204 ldbl_ILLprice_primal (
00205 ldbl_lpinfo * const lp,
00206 ldbl_price_info * const pinf,
00207 ldbl_price_res * const pr,
00208 int const phase),
00209 ldbl_ILLprice_compute_primal_inf (
00210 ldbl_lpinfo * const lp,
00211 ldbl_price_info * const p,
00212 int *const ix,
00213 int const icnt,
00214 int const phase),
00215 ldbl_ILLprice_dual (
00216 ldbl_lpinfo * const lp,
00217 ldbl_price_info * const pinf,
00218 int const phase,
00219 ldbl_price_res * const pr);
00220
00221 void ldbl_test_dsteep_norms (
00222 ldbl_lpinfo * const lp,
00223 ldbl_price_info * const p);
00224
00225 #endif
00226 #endif
00227 #endif