1.1 --- a/lemon/glpk.cc Mon Jan 12 12:26:01 2009 +0000
1.2 +++ b/lemon/glpk.cc Mon Jan 12 12:26:02 2009 +0000
1.3 @@ -522,33 +522,33 @@
1.4 cols.clear();
1.5 }
1.6
1.7 - // LpGlpk members
1.8 + // GlpkLp members
1.9
1.10 - LpGlpk::LpGlpk()
1.11 + GlpkLp::GlpkLp()
1.12 : LpBase(), GlpkBase(), LpSolver() {
1.13 messageLevel(MESSAGE_NO_OUTPUT);
1.14 }
1.15
1.16 - LpGlpk::LpGlpk(const LpGlpk& other)
1.17 + GlpkLp::GlpkLp(const GlpkLp& other)
1.18 : LpBase(other), GlpkBase(other), LpSolver(other) {
1.19 messageLevel(MESSAGE_NO_OUTPUT);
1.20 }
1.21
1.22 - LpGlpk* LpGlpk::_newSolver() const { return new LpGlpk; }
1.23 - LpGlpk* LpGlpk::_cloneSolver() const { return new LpGlpk(*this); }
1.24 + GlpkLp* GlpkLp::_newSolver() const { return new GlpkLp; }
1.25 + GlpkLp* GlpkLp::_cloneSolver() const { return new GlpkLp(*this); }
1.26
1.27 - const char* LpGlpk::_solverName() const { return "LpGlpk"; }
1.28 + const char* GlpkLp::_solverName() const { return "GlpkLp"; }
1.29
1.30 - void LpGlpk::_clear_temporals() {
1.31 + void GlpkLp::_clear_temporals() {
1.32 _primal_ray.clear();
1.33 _dual_ray.clear();
1.34 }
1.35
1.36 - LpGlpk::SolveExitStatus LpGlpk::_solve() {
1.37 + GlpkLp::SolveExitStatus GlpkLp::_solve() {
1.38 return solvePrimal();
1.39 }
1.40
1.41 - LpGlpk::SolveExitStatus LpGlpk::solvePrimal() {
1.42 + GlpkLp::SolveExitStatus GlpkLp::solvePrimal() {
1.43 _clear_temporals();
1.44
1.45 glp_smcp smcp;
1.46 @@ -573,7 +573,7 @@
1.47 return SOLVED;
1.48 }
1.49
1.50 - LpGlpk::SolveExitStatus LpGlpk::solveDual() {
1.51 + GlpkLp::SolveExitStatus GlpkLp::solveDual() {
1.52 _clear_temporals();
1.53
1.54 glp_smcp smcp;
1.55 @@ -599,19 +599,19 @@
1.56 return SOLVED;
1.57 }
1.58
1.59 - LpGlpk::Value LpGlpk::_getPrimal(int i) const {
1.60 + GlpkLp::Value GlpkLp::_getPrimal(int i) const {
1.61 return glp_get_col_prim(lp, i);
1.62 }
1.63
1.64 - LpGlpk::Value LpGlpk::_getDual(int i) const {
1.65 + GlpkLp::Value GlpkLp::_getDual(int i) const {
1.66 return glp_get_row_dual(lp, i);
1.67 }
1.68
1.69 - LpGlpk::Value LpGlpk::_getPrimalValue() const {
1.70 + GlpkLp::Value GlpkLp::_getPrimalValue() const {
1.71 return glp_get_obj_val(lp);
1.72 }
1.73
1.74 - LpGlpk::VarStatus LpGlpk::_getColStatus(int i) const {
1.75 + GlpkLp::VarStatus GlpkLp::_getColStatus(int i) const {
1.76 switch (glp_get_col_stat(lp, i)) {
1.77 case GLP_BS:
1.78 return BASIC;
1.79 @@ -625,11 +625,11 @@
1.80 return FIXED;
1.81 default:
1.82 LEMON_ASSERT(false, "Wrong column status");
1.83 - return LpGlpk::VarStatus();
1.84 + return GlpkLp::VarStatus();
1.85 }
1.86 }
1.87
1.88 - LpGlpk::VarStatus LpGlpk::_getRowStatus(int i) const {
1.89 + GlpkLp::VarStatus GlpkLp::_getRowStatus(int i) const {
1.90 switch (glp_get_row_stat(lp, i)) {
1.91 case GLP_BS:
1.92 return BASIC;
1.93 @@ -643,11 +643,11 @@
1.94 return FIXED;
1.95 default:
1.96 LEMON_ASSERT(false, "Wrong row status");
1.97 - return LpGlpk::VarStatus();
1.98 + return GlpkLp::VarStatus();
1.99 }
1.100 }
1.101
1.102 - LpGlpk::Value LpGlpk::_getPrimalRay(int i) const {
1.103 + GlpkLp::Value GlpkLp::_getPrimalRay(int i) const {
1.104 if (_primal_ray.empty()) {
1.105 int row_num = glp_get_num_rows(lp);
1.106 int col_num = glp_get_num_cols(lp);
1.107 @@ -699,7 +699,7 @@
1.108 return _primal_ray[i];
1.109 }
1.110
1.111 - LpGlpk::Value LpGlpk::_getDualRay(int i) const {
1.112 + GlpkLp::Value GlpkLp::_getDualRay(int i) const {
1.113 if (_dual_ray.empty()) {
1.114 int row_num = glp_get_num_rows(lp);
1.115
1.116 @@ -771,7 +771,7 @@
1.117 return _dual_ray[i];
1.118 }
1.119
1.120 - LpGlpk::ProblemType LpGlpk::_getPrimalType() const {
1.121 + GlpkLp::ProblemType GlpkLp::_getPrimalType() const {
1.122 if (glp_get_status(lp) == GLP_OPT)
1.123 return OPTIMAL;
1.124 switch (glp_get_prim_stat(lp)) {
1.125 @@ -788,11 +788,11 @@
1.126 return INFEASIBLE;
1.127 default:
1.128 LEMON_ASSERT(false, "Wrong primal type");
1.129 - return LpGlpk::ProblemType();
1.130 + return GlpkLp::ProblemType();
1.131 }
1.132 }
1.133
1.134 - LpGlpk::ProblemType LpGlpk::_getDualType() const {
1.135 + GlpkLp::ProblemType GlpkLp::_getDualType() const {
1.136 if (glp_get_status(lp) == GLP_OPT)
1.137 return OPTIMAL;
1.138 switch (glp_get_dual_stat(lp)) {
1.139 @@ -809,31 +809,31 @@
1.140 return INFEASIBLE;
1.141 default:
1.142 LEMON_ASSERT(false, "Wrong primal type");
1.143 - return LpGlpk::ProblemType();
1.144 + return GlpkLp::ProblemType();
1.145 }
1.146 }
1.147
1.148 - void LpGlpk::presolver(bool b) {
1.149 + void GlpkLp::presolver(bool b) {
1.150 lpx_set_int_parm(lp, LPX_K_PRESOL, b ? 1 : 0);
1.151 }
1.152
1.153 - void LpGlpk::messageLevel(MessageLevel m) {
1.154 + void GlpkLp::messageLevel(MessageLevel m) {
1.155 _message_level = m;
1.156 }
1.157
1.158 - // MipGlpk members
1.159 + // GlpkMip members
1.160
1.161 - MipGlpk::MipGlpk()
1.162 + GlpkMip::GlpkMip()
1.163 : LpBase(), GlpkBase(), MipSolver() {
1.164 messageLevel(MESSAGE_NO_OUTPUT);
1.165 }
1.166
1.167 - MipGlpk::MipGlpk(const MipGlpk& other)
1.168 + GlpkMip::GlpkMip(const GlpkMip& other)
1.169 : LpBase(), GlpkBase(other), MipSolver() {
1.170 messageLevel(MESSAGE_NO_OUTPUT);
1.171 }
1.172
1.173 - void MipGlpk::_setColType(int i, MipGlpk::ColTypes col_type) {
1.174 + void GlpkMip::_setColType(int i, GlpkMip::ColTypes col_type) {
1.175 switch (col_type) {
1.176 case INTEGER:
1.177 glp_set_col_kind(lp, i, GLP_IV);
1.178 @@ -844,7 +844,7 @@
1.179 }
1.180 }
1.181
1.182 - MipGlpk::ColTypes MipGlpk::_getColType(int i) const {
1.183 + GlpkMip::ColTypes GlpkMip::_getColType(int i) const {
1.184 switch (glp_get_col_kind(lp, i)) {
1.185 case GLP_IV:
1.186 case GLP_BV:
1.187 @@ -855,7 +855,7 @@
1.188
1.189 }
1.190
1.191 - MipGlpk::SolveExitStatus MipGlpk::_solve() {
1.192 + GlpkMip::SolveExitStatus GlpkMip::_solve() {
1.193 glp_smcp smcp;
1.194 glp_init_smcp(&smcp);
1.195
1.196 @@ -901,7 +901,7 @@
1.197 }
1.198
1.199
1.200 - MipGlpk::ProblemType MipGlpk::_getType() const {
1.201 + GlpkMip::ProblemType GlpkMip::_getType() const {
1.202 switch (glp_get_status(lp)) {
1.203 case GLP_OPT:
1.204 switch (glp_mip_status(lp)) {
1.205 @@ -915,7 +915,7 @@
1.206 return OPTIMAL;
1.207 default:
1.208 LEMON_ASSERT(false, "Wrong problem type.");
1.209 - return MipGlpk::ProblemType();
1.210 + return GlpkMip::ProblemType();
1.211 }
1.212 case GLP_NOFEAS:
1.213 return INFEASIBLE;
1.214 @@ -928,24 +928,24 @@
1.215 }
1.216 default:
1.217 LEMON_ASSERT(false, "Wrong problem type.");
1.218 - return MipGlpk::ProblemType();
1.219 + return GlpkMip::ProblemType();
1.220 }
1.221 }
1.222
1.223 - MipGlpk::Value MipGlpk::_getSol(int i) const {
1.224 + GlpkMip::Value GlpkMip::_getSol(int i) const {
1.225 return glp_mip_col_val(lp, i);
1.226 }
1.227
1.228 - MipGlpk::Value MipGlpk::_getSolValue() const {
1.229 + GlpkMip::Value GlpkMip::_getSolValue() const {
1.230 return glp_mip_obj_val(lp);
1.231 }
1.232
1.233 - MipGlpk* MipGlpk::_newSolver() const { return new MipGlpk; }
1.234 - MipGlpk* MipGlpk::_cloneSolver() const {return new MipGlpk(*this); }
1.235 + GlpkMip* GlpkMip::_newSolver() const { return new GlpkMip; }
1.236 + GlpkMip* GlpkMip::_cloneSolver() const {return new GlpkMip(*this); }
1.237
1.238 - const char* MipGlpk::_solverName() const { return "MipGlpk"; }
1.239 + const char* GlpkMip::_solverName() const { return "GlpkMip"; }
1.240
1.241 - void MipGlpk::messageLevel(MessageLevel m) {
1.242 + void GlpkMip::messageLevel(MessageLevel m) {
1.243 _message_level = m;
1.244 }
1.245