Main Page   Class Hierarchy   Compound List   File List   Contact   Download   Symbolic Constraints   Examples  

row_constraint.cc

00001 #include<scil/global.h>
00002 #include<scil/row_constraint.h>
00003 #include<scil/variable.h>
00004 #include<scil/row.h>
00005 
00006 using namespace SCIL;
00007 
00008 row_constraint::row_constraint(row& r, cons_sense s) : NZV(r.size()), NZC(r.size()) 
00009 {
00010   row_entry t;
00011   int i=0;
00012   forall(t, r) {
00013     NZV[i]=t.Var;
00014     NZC[i]=t.Coeff;
00015     i++;
00016   }
00017   set_sense(s);
00018   set_rhs(rhs());
00019 }
00020 
00021 
00022 double row_constraint::rhs()
00023 {
00024   if(NZV[0]==nil) return -NZC[0];
00025   return 0;
00026 }
00027 
00028 
00029 double row_constraint::coeff(var_obj* v) 
00030 {
00031   int i=NZV.binary_search(var(v));
00032   if (i!=-1) return NZC[i];
00033   return 0;
00034 }
00035 
00036 void row_constraint::non_zero_entries(row& r) 
00037 {
00038   for(int i=0; i<=NZC.high(); i++) {
00039     if(NZV[i]!=nil) r+=row_entry(NZV[i],NZC[i]);
00040   }
00041 }
00042 
00043 row_constraint::~row_constraint() {
00044 };
00045 

Generated on Tue Nov 16 15:18:19 2004 for SCIL by doxygen1.2.16