fsvarstat.h

Go to the documentation of this file.
00001 
00035 #ifndef ABA_FSVARSTAT_H
00036 #define ABA_FSVARSTAT_H
00037 #include <iostream>
00038 using namespace std;
00039 
00040 
00041 #include "abacus/abacusroot.h"
00042 
00043 class ABA_GLOBAL;
00044 
00045 #ifdef ABACUS_PARALLEL
00046 class ABA_MESSAGE;
00047 #endif
00048 
00049   class  ABA_FSVARSTAT :  public ABA_ABACUSROOT  { 
00050     public: 
00051 
00065       enum STATUS {Free, SetToLowerBound, Set, SetToUpperBound,
00066                    FixedToLowerBound, Fixed, FixedToUpperBound};
00067 
00074       ABA_FSVARSTAT(ABA_GLOBAL *glob);
00075 
00084       ABA_FSVARSTAT(ABA_GLOBAL *glob, STATUS status);
00085 
00093       ABA_FSVARSTAT(ABA_GLOBAL *glob, STATUS status, double value);
00094 
00099       ABA_FSVARSTAT(ABA_FSVARSTAT *fsVarStat);
00100 #ifdef ABACUS_PARALLEL
00101 
00107       ABA_FSVARSTAT(const ABA_GLOBAL *glob, ABA_MESSAGE &msg);
00108 
00113       void pack(ABA_MESSAGE &msg) const;
00114 #endif
00115 
00124       friend ostream &operator<<(ostream& out, const ABA_FSVARSTAT &rhs);
00125 
00128       STATUS status() const;
00129 
00138       void status(STATUS stat);
00139 
00146       void status(STATUS stat, double val);
00147 
00153       void status(const ABA_FSVARSTAT *stat);
00154 
00157       double value() const;
00158 
00164       void value(double val);
00165 
00170       bool fixed() const;
00171 
00176       bool set() const;
00177 
00181       bool fixedOrSet() const;
00182 
00195       bool contradiction(ABA_FSVARSTAT *fsVarStat) const;
00196 
00207       bool contradiction(STATUS status, double value = 0) const;
00208 
00209     private: 
00210 
00213       ABA_GLOBAL *glob_;
00214 
00217       STATUS      status_;
00218 
00223       double      value_;
00224   };
00225 
00226 
00227 inline ABA_FSVARSTAT::ABA_FSVARSTAT(ABA_GLOBAL *glob) 
00228   : 
00229     glob_(glob), 
00230     status_(Free)
00231   { }
00232 
00233 inline ABA_FSVARSTAT::STATUS ABA_FSVARSTAT::status() const
00234   {
00235     return status_;
00236   }
00237 
00238 inline void ABA_FSVARSTAT::status(STATUS stat)
00239   {
00240     status_ = stat;
00241   }
00242 
00243 inline void ABA_FSVARSTAT::status(STATUS stat, double val)
00244   {
00245     status_ = stat;
00246     value_  = val;
00247   }
00248 
00249 inline void ABA_FSVARSTAT::status(const ABA_FSVARSTAT *stat)
00250   {
00251     status_ = stat->status_;
00252     value_  = stat->value_;
00253   }
00254 
00255 inline double ABA_FSVARSTAT::value() const
00256   {
00257     return value_;
00258   }
00259 
00260 inline void ABA_FSVARSTAT::value(double val)
00261   {
00262     value_ = val;
00263   }
00264 
00265 inline bool ABA_FSVARSTAT::fixedOrSet() const
00266   {
00267     if (status_ == Free) return false;
00268     else                 return true;
00269   }
00270 
00271 
00272 #endif  // ABA_FSVARSTAT_H
00273 
00274 

Generated on Tue Aug 14 18:09:53 2007 for ABACUS by  doxygen 1.5.1