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

variable.h

00001 #ifndef SCIL_VARIABLE_H
00002 #define SCIL_VARIABLE_H
00003 
00004 #include <scil/global.h>
00005 #include<iostream>
00006 #define nil 0
00007 
00008 namespace SCIL {
00009 
00010 class row; 
00011 class var_obj; 
00012 class var; 
00013 class monomial; 
00014 class polynomial;
00015 class ABA_Variable;
00016 
00017 //row operator*(double d, const var& v);
00018 
00020 class var {
00021 
00022  private:
00024   var_obj* VS;
00025 
00026  public:
00027 
00029   var(var_obj* VS_) { VS=VS_; }
00031   var() { VS=nil; }
00033   var(const var& v) { VS=v.VS; }
00035   ABA_Variable* Avar_pointer();
00036 
00038   var_obj* var_pointer() const;
00039 
00041   double obj();
00042 
00044   double lower_bound();
00045 
00047   double upper_bound();
00048 
00050   Vartype type();
00052   row operator+ (const row& r);
00054   row operator- (const row& r);
00056   polynomial operator+ (const polynomial& p);
00058   polynomial operator- (const polynomial& p);
00060   polynomial operator* (const polynomial& p);
00062   monomial operator* (const var& a);
00064   row operator+ (const var& v);
00066   row operator- (const var& v);
00068   var& operator=(const var& v) { VS=v.VS; return *this; }
00070   bool operator<  (const var& v1) const;
00072   bool operator<= (const var& v1) const;
00074   bool operator!= (const var& v1) const;
00076   bool operator== (const var& v1) const;
00078   bool operator>  (const var& v1) const;
00089   row  operator*  (double d);
00090   
00091   friend std::ostream& operator<<(std::ostream& o,const var& v) {
00092     return o<<v.VS; };
00093 };
00094 
00095 };
00096 
00097 #endif
Generated on Mon Mar 28 22:03:51 2011 for SCIL by  doxygen 1.6.3