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