00001 #include<scil/global.h>
00002 #include<scil/row_constraint.h>
00003 #include<scil/var_obj.h>
00004 #include<scil/row.h>
00005
00006 row_constraint::row_constraint(row& r, cons_sense s) : NZV(r.size()), NZC(r.size())
00007 {
00008 row_entry t;
00009 int i=0;
00010 forall(t, r) {
00011 NZV[i]=t.Var;
00012 NZC[i]=t.coeff;
00013 i++;
00014 }
00015 set_sense(s);
00016 set_rhs(rhs());
00017 }
00018
00019
00020 double row_constraint::rhs()
00021 {
00022 if(NZV[0]==nil) return -NZC[0];
00023 return 0;
00024 }
00025
00026 void row_constraint::non_zero_entries(row& r)
00027 {
00028 for(int i=0; i<=NZC.high(); i++) {
00029 if(NZV[i]!=nil) r+=NZV[i]*NZC[i];
00030 }
00031 }
00032