lpvarstat.h

Go to the documentation of this file.
00001 
00038 #ifndef ABA_LPVARSTAT_H
00039 #define ABA_LPVARSTAT_H
00040 #include <iostream>
00041 using namespace std;
00042 
00043 #include "abacus/abacusroot.h"
00044 
00045 class ABA_GLOBAL;
00046 
00047 #ifdef ABACUS_PARALLEL
00048 class ABA_MESSAGE;
00049 #endif
00050 
00051   class ABA_LPVARSTAT :  public ABA_ABACUSROOT  { 
00052     public: 
00053 
00073       enum STATUS {AtLowerBound, Basic, AtUpperBound, NonBasicFree,
00074                    Eliminated, Unknown}; 
00075 
00076 
00081       ABA_LPVARSTAT(ABA_GLOBAL *glob);
00082 
00088       ABA_LPVARSTAT(ABA_GLOBAL *glob, STATUS status);
00089     
00095       ABA_LPVARSTAT(ABA_LPVARSTAT *lpVarStat);
00096 #ifdef ABACUS_PARALLEL
00097 
00103       ABA_LPVARSTAT(const ABA_GLOBAL *glob, ABA_MESSAGE &msg);
00104 
00109       void pack(ABA_MESSAGE &msg) const;
00110 #endif
00111 
00122       friend ostream &operator<<(ostream& out, const ABA_LPVARSTAT &rhs);
00123 
00126       STATUS status() const;
00127 
00133       void status(STATUS stat);
00134 
00140       void status(const ABA_LPVARSTAT *stat);
00141 
00145       bool atBound() const;
00146 
00150       bool basic() const;
00151 
00152     private: 
00153 
00156       ABA_GLOBAL *glob_;
00157 
00160       STATUS status_;
00161   };
00162 
00163 
00164 inline ABA_LPVARSTAT::ABA_LPVARSTAT(ABA_GLOBAL *glob) 
00165   : 
00166     glob_(glob), 
00167     status_(Unknown)
00168   { }
00169 
00170 inline ABA_LPVARSTAT::ABA_LPVARSTAT(ABA_GLOBAL *glob, STATUS status) 
00171   : 
00172     glob_(glob), 
00173     status_(status)
00174   { }
00175 
00176 inline ABA_LPVARSTAT::ABA_LPVARSTAT(ABA_LPVARSTAT *lpVarStat) 
00177   : 
00178     glob_(lpVarStat->glob_), 
00179     status_(lpVarStat->status_)
00180   { }
00181 
00182 inline ABA_LPVARSTAT::STATUS ABA_LPVARSTAT::status() const
00183   {
00184     return status_;
00185   }
00186 
00187 inline void ABA_LPVARSTAT::status(STATUS stat)
00188   {
00189     status_ = stat;
00190   }
00191 
00192 inline void ABA_LPVARSTAT::status(const ABA_LPVARSTAT *stat)
00193   {
00194     status_ = stat->status_;
00195   }
00196 
00197 inline bool ABA_LPVARSTAT::atBound() const
00198   {
00199     if (status_ == AtLowerBound || status_ == AtUpperBound) return true;
00200     else                                                    return false;
00201   }
00202 
00203 inline bool ABA_LPVARSTAT::basic() const
00204   {
00205     return status_ == Basic ? true : false;
00206   }
00207 
00208 
00209 #endif  // ABA_LPVARSTAT_H
00210 

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