src/work/athos/lp/lp_base.h
changeset 1298 d1ca90316b59
parent 1294 2dec219d9ca2
child 1303 9bcc455da4f5
equal deleted inserted replaced
16:9f5c64455085 17:a93a839a693a
   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;