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 <list>
00005 #undef set
00006 #include <scil/row_entry.h>
00007 
00008 namespace SCIL {
00009 
00010 class var;
00011 class cons_obj;
00012 class polynomial;
00013 
00015 class row {
00016 
00017   public:
00018 
00019 //private:
00020 
00021   private:
00023   std::list<row_entry> NZ;
00024 
00025   public:
00026 
00028   row() {
00029   };
00030 
00032   row(double d);
00033 
00035   row(var v); 
00036 
00038   row(std::list<row_entry>& L);
00039 
00041   row operator* (double d);
00043   polynomial operator* (const polynomial& p);
00045   polynomial operator* (const var& v);
00047   polynomial operator* (const monomial& m);
00049   polynomial operator+ (const polynomial& p);
00051   polynomial operator- (const polynomial& p);
00053   row operator- (const var& v);
00055   row operator+ (const row& r1);
00057   row operator+ (const var& v);
00059   row operator+ (double d);
00061   row operator- (const row& r1);
00063   row& operator+= (const var& v);
00065   row& operator-= (const var& v);
00067   row& operator+= (const row_entry& r);
00069   row& operator+= (const row& r1);
00071   row& operator-= (const row& r1);
00073   cons_obj* operator== (row r1);
00075   cons_obj* operator<= (row r1);
00077   cons_obj* operator>= (row r1);
00078 
00094   void normalize(bool clean = false);
00095 
00097   std::list<row_entry>::const_iterator begin() const;
00098 
00100   std::list<row_entry>::const_iterator end() const;
00101 
00103   std::list<row_entry>::iterator begin();
00104 
00106   std::list<row_entry>::iterator end();
00107 
00109   int size() const;
00110 
00112   friend std::ostream& operator<<(std::ostream& o,const row&);
00113 };
00114 
00116 row operator*(double d, var v);
00117 
00119 row operator*(double d, row r1);
00120 
00121 }
00122 
00123 
00124 #endif
Generated on Mon Mar 28 22:03:49 2011 for SCIL by  doxygen 1.6.3