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