00001 #ifndef SCIL_ROW_CONSTRAINT_H 00002 #define SCIL_ROW_CONSTRAINT_H 00003 00004 #include<scil/cons_obj.h> 00005 #include<scil/variable.h> 00006 #include<vector> 00007 00008 namespace SCIL { 00009 00010 class var_obj; 00011 class row; 00012 00013 class row_constraint : public cons_obj { 00014 00015 private: 00016 00018 struct pair { 00019 var v; double c; 00020 pair( var v, double c ) : v(v), c(c){}; 00021 }; 00022 00024 static bool compareByVar(const pair p1, const pair p2) { return (p1.v < p2.v); } 00025 00026 std::vector<pair> NZ; 00027 00028 public: 00029 row_constraint(row& r, cons_sense s); 00030 double rhs(); 00031 00033 double coeff(var_obj* v); 00034 00036 void non_zero_entries(row& r); 00037 }; 00038 }; 00039 00040 #endif