equal
deleted
inserted
replaced
112 UNSOLVED = 1 |
112 UNSOLVED = 1 |
113 }; |
113 }; |
114 |
114 |
115 ///\e |
115 ///\e |
116 enum SolutionType { |
116 enum SolutionType { |
117 ///\e |
117 ///Feasible solution has'n been found (but may exist). |
|
118 |
|
119 ///\todo NOTFOUND might be a better name. |
|
120 /// |
118 UNDEFINED = 0, |
121 UNDEFINED = 0, |
119 ///\e |
122 ///The problem has no feasible solution |
120 INFEASIBLE = 1, |
123 INFEASIBLE = 1, |
121 ///\e |
124 ///Feasible solution found |
122 FEASIBLE = 2, |
125 FEASIBLE = 2, |
123 ///\e |
126 ///Optimal solution exists and found |
124 OPTIMAL = 3 |
127 OPTIMAL = 3, |
|
128 ///The cost function is unbounded |
|
129 |
|
130 ///\todo Give a feasible solution and an infinite ray (and the |
|
131 ///corresponding bases) |
|
132 INFINITE = 4 |
125 }; |
133 }; |
126 |
134 |
127 ///The floating point type used by the solver |
135 ///The floating point type used by the solver |
128 typedef double Value; |
136 typedef double Value; |
129 ///The infinity constant |
137 ///The infinity constant |
349 ///\e |
357 ///\e |
350 Value &upperBound() { return _ub; } |
358 Value &upperBound() { return _ub; } |
351 ///\e |
359 ///\e |
352 const Value &upperBound() const { return _ub; } |
360 const Value &upperBound() const { return _ub; } |
353 ///\e |
361 ///\e |
354 bool lowerBounded() const { return std::isfinite(_lb); } |
362 bool lowerBounded() const { |
355 ///\e |
363 using namespace std; |
356 bool upperBounded() const { return std::isfinite(_ub); } |
364 return isfinite(_lb); |
|
365 } |
|
366 ///\e |
|
367 bool upperBounded() const { |
|
368 using namespace std; |
|
369 return isfinite(_ub); |
|
370 } |
357 }; |
371 }; |
358 |
372 |
359 |
373 |
360 protected: |
374 protected: |
361 _FixId rows; |
375 _FixId rows; |