00001 00043 #ifndef ABA_LPSOLUTION_H 00044 #define ABA_LPSOLUTION_H 00045 #include "abacus/array.h" 00046 00047 class ABA_MASTER; 00048 class ABA_SUB; 00049 template<class BaseType, class CoType> class ABA_ACTIVE; 00050 template<class CoType,class BaseType> class ABA_SEPARATOR; 00051 00052 #ifdef ABACUS_NEW_TEMPLATE_SYNTAX 00053 template <class BaseType, class CoType> 00054 class ABA_LPSOLUTION; 00055 00056 template <class BaseType, class CoType> 00057 ostream &operator<< (ostream &out, const ABA_LPSOLUTION<BaseType, CoType> &rhs); 00058 #endif 00059 00060 template <class BaseType, class CoType> 00061 class ABA_LPSOLUTION : public ABA_ABACUSROOT { 00062 friend class ABA_SEPARATOR< CoType, BaseType>; 00063 public: 00064 00082 ABA_LPSOLUTION(ABA_SUB *sub, bool primalVariables, ABA_ACTIVE<BaseType, CoType> *active); 00083 00088 ABA_LPSOLUTION(ABA_MASTER *master); 00089 00094 ABA_LPSOLUTION(const ABA_LPSOLUTION<BaseType, CoType> &rhs); 00095 00097 ~ABA_LPSOLUTION(); 00098 #ifdef ABACUS_NEW_TEMPLATE_SYNTAX 00099 00107 friend ostream &operator<< <> (ostream &, 00108 const ABA_LPSOLUTION<BaseType, CoType> &); 00109 #else 00110 00118 friend ostream &operator<<(ostream &out, 00119 const ABA_LPSOLUTION<BaseType, CoType> &rhs); 00120 #endif 00121 00125 int nVarCon() const; 00126 00129 double *zVal(); 00130 00133 ABA_ACTIVE<BaseType, CoType> *active(); 00134 00137 int idSub() const; 00138 00141 int idLp() const; 00142 #ifdef ABACUS_PARALLEL 00143 00146 int idProc() const; 00147 #endif 00148 00149 00150 protected: 00151 ABA_MASTER *master_; 00152 int nVarCon_; 00153 int idSub_; 00154 int idLp_; 00155 #ifdef ABACUS_PARALLEL 00156 int idProc_; 00157 #endif 00158 ABA_ARRAY<double> zVal_; 00159 ABA_ACTIVE<BaseType, CoType> *active_; 00160 private: 00161 const ABA_LPSOLUTION<BaseType, CoType> 00162 &operator=(const ABA_LPSOLUTION<BaseType, CoType> & rhs); 00163 }; 00164 00192 #include "abacus/lpsolution.inc" 00193 00194 #endif // ABA_LPSOLUTION_H 00195 00196