home *** CD-ROM | disk | FTP | other *** search
/ OS/2 Shareware BBS: 10 Tools / 10-Tools.zip / mesaaiok.zip / source / solver.h < prev   
C/C++ Source or Header  |  1995-10-25  |  1KB  |  59 lines

  1.  
  2. #ifndef __SOLVER__
  3. #define __SOLVER__
  4.  
  5. #include <string.h>
  6.  
  7. class Address;
  8. class Model;
  9.  
  10. class Solver {
  11.     public:
  12. /* Valid types are              */
  13. /* 0 - Set cell to value        */
  14. /* 1 - Minimum (value ignored)  */
  15. /* 2 - Maximum (value ignored)  */
  16.     Solver(Model & theModel, Address & change, Address &final,
  17.                double precision, int type = 0, double value = 0.0);
  18.     ~Solver();
  19.  
  20.     // stop the solving process
  21.     Solver & stop();
  22.  
  23.     // get the solver parameters.
  24.     Address &changeCell() {return chng;};
  25.     Address &finalCell() {return finl;};
  26.     double precision() {return prec;};
  27.     double finalValue() {return fval;};
  28.     int type() {return tp;};
  29.     Model &model() {return _model;};
  30.  
  31.     // set a query how far the solution is along
  32.     int percentComplete() { return percentComp;};
  33.     Solver & setPercentComplete(int v) { percentComp = v; return *this;};
  34.  
  35.     int isError() { return (int)error[0];};
  36.     Solver &setError(char *er) { strcpy(error,er); return *this;};
  37.     char * getError() { return error;};
  38.  
  39.     int shouldStop() { return dostop;};
  40.  
  41.     private:
  42.     Solver() {};   // can't create a solver without parameters
  43.     Solver(const Solver &) {};  // can't copy a solver object
  44.  
  45.     Address chng;
  46.     Address finl;
  47.     double fval;
  48.     int tp;
  49.     double prec;
  50.     Model _model;
  51.     int percentComp;
  52.  
  53.     int dostop;
  54.  
  55.     char error[1000];
  56.     TID tid;
  57. };
  58. #endif
  59.