00001 00038 #ifndef ABA_ROWCON_H 00039 #define ABA_ROWCON_H 00040 00041 #include "abacus/row.h" 00042 #include "abacus/constraint.h" 00043 00044 class ABA_ROWCON : public ABA_CONSTRAINT { 00045 public: 00046 00073 ABA_ROWCON(ABA_MASTER *master, 00074 const ABA_SUB *sub, 00075 ABA_CSENSE::SENSE sense, 00076 int nnz, 00077 const ABA_ARRAY<int> &support, 00078 const ABA_ARRAY<double> &coeff, 00079 double rhs, 00080 bool dynamic, 00081 bool local, 00082 bool liftable); 00083 00088 ABA_ROWCON(ABA_MASTER *master, 00089 const ABA_SUB *sub, 00090 ABA_CSENSE::SENSE sense, 00091 int nnz, 00092 int *support, 00093 double *coeff, 00094 double rhs, 00095 bool dynamic, 00096 bool local, 00097 bool liftable); 00098 00100 virtual ~ABA_ROWCON(); 00101 #ifdef ABACUS_PARALLEL 00102 00108 ABA_ROWCON(const ABA_MASTER *master, ABA_MESSAGE &msg); 00109 00114 virtual void pack(ABA_MESSAGE &msg) const; 00115 00120 virtual int classId() const; 00121 #endif 00122 00135 virtual double coeff(ABA_VARIABLE *v); 00136 00144 virtual void print(ostream &out); 00145 00148 ABA_ROW *row(); 00149 00150 protected: 00151 00154 ABA_ROW row_; 00155 }; 00156 00157 00158 inline ABA_ROW *ABA_ROWCON::row() 00159 { 00160 return &row_; 00161 } 00162 00163 00164 #endif // ABA_ROWCON_H 00165