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

row.h

00001 #ifndef SCIL_ROW_H
00002 #define SCIL_ROW_H
00003 
00004 #include <LEDA/list.h>
00005 #undef set
00006 #include <scil/row_entry.h>
00007 
00008 namespace SCIL {
00009 
00010 class var;
00011 class cons_obj;
00012 
00014 class row {
00015 
00016 public:
00017   LEDA_MEMORY(row)
00018 
00019 //private:
00020   typedef LEDA::list_item item;
00021 
00022   private:
00023   LEDA::list<row_entry> NZ;
00024 
00025   public:
00026 
00028   row() {
00029   };
00030 
00032   row(double d);
00033 
00035   row(var v); 
00036 
00038   row(LEDA::list<row_entry>& L);
00039 
00041   row operator* (double d);
00042 
00044   row operator+ (const row& r1);
00045 
00046   row operator+ (const var& v);
00047 
00048   row operator+ (double d);
00049 
00051   row operator- (const row& r1);
00052 
00054   row& operator+= (const row& r1);
00055 
00056   row& operator+= (const var& v);
00057 
00058   row& operator-= (const var& v);
00059 
00060   row& operator+= (const row_entry& r);
00061 
00063   row& operator-= (const row& r1);
00064 
00066   cons_obj* operator== (row r1);
00067 
00069   cons_obj* operator<= (row r1);
00070 
00072   cons_obj* operator>= (row r1);
00073 
00074   void normalize();
00075 
00076   item first_item() const;
00077 
00078   item next_item(item i) const;
00079 
00080   row_entry inf(const item i) const;
00081 
00083   int size();
00084 
00085 /*{\Mtext {\bf forall\_items}($it,L$)       
00086   $\{$ ``the items of $L$ are successively assigned to $it$'' $\}$}*/
00087 
00088   friend ostream& operator<<(ostream& o,const row&);
00089 };
00090 
00092 row operator*(double d, var v);
00093 
00095 row operator*(double d, row r1);
00096 
00097 }
00098 
00099 
00100 #endif

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