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

variable.cc

00001 #include <scil/variable.h>
00002 #include <scil/var_obj.h>
00003 #include <scil/row.h>
00004 #include <scil/core/monomial.h>
00005 #include <scil/core/polynomial.h>
00006 
00007 namespace SCIL {
00008 
00009 double var::obj() {
00010   return var_pointer()->obj();
00011 };
00012 
00013 double var::lower_bound() {
00014   return var_pointer()->lower_bound();
00015 };
00016 
00017 double var::upper_bound() {
00018   return var_pointer()->upper_bound();
00019 }
00020 
00021 Vartype var::type() {
00022   return var_pointer()->type();
00023 };
00024 
00025 var_obj* var::var_pointer() const {
00026   //if (VS==nil) cout<<"nil variable\n";
00027   return VS;
00028 }
00029 
00030 ABA_Variable* var::Avar_pointer() {
00031   if (VS==nil) cout<<"nil variable\n";
00032   return VS->AVar();
00033 }
00034 
00035 row var::operator+ (const row& r) {
00036   return row(*this)+r;
00037 }
00038 
00039 row var::operator- (const row& r) {
00040    return row(*this)-r;
00041 }
00042 
00043 polynomial var::operator+(const polynomial& p) {
00044    return monomial(*this) + p;
00045 }
00046 
00047 polynomial var::operator-(const polynomial& p) {
00048    return monomial(*this) - p;
00049 }
00050 
00051 polynomial var::operator*(const polynomial& p) {
00052    return monomial(*this) * p;
00053 }
00054 
00055 row var::operator+ (const var& v) {
00056    return *this + row(v);
00057 }
00058 
00059 row var::operator- (const var& v) {
00060    return *this - row(v);
00061 }
00062 
00063 row var::operator* (double d) {
00064   return row(*this)*d;
00065 }
00066 
00067 monomial var::operator* (const var& a) {
00068   return monomial(*this)*a;
00069 }
00070 
00071 bool var::operator< (const var& v1) const {
00072   return VS<v1.VS;
00073 }
00074 
00075 bool var::operator<= (const var& v1) const {
00076   return VS<=v1.VS;
00077 }
00078 
00079 bool var::operator!= (const var& v1) const {
00080   return VS!=v1.VS;
00081 }
00082 
00083 bool var::operator== (const var& v1) const {
00084   return VS==v1.VS;
00085 }
00086 
00087 bool var::operator> (const var& v1) const {
00088   return VS>v1.VS;
00089 }
00090 
00091 /*row operator*(double d, const var& v) {
00092    return row(v)*d;
00093 }*/
00094 
00095 int compare(const var& v1, const var& v2) {
00096   if(v1>v2) return 1;
00097   if(v1<v2) return -1;
00098   return 0;
00099 };
00100 int compare(var& v1, const var& v2) {
00101   if(v1>v2) return 1;
00102   if(v1<v2) return -1;
00103   return 0;
00104 }
00105 std::istream& operator>>(std::istream& in, SCIL::var& b) {
00106    return in; 
00107 }
00108 
00109 };
Generated on Mon Mar 28 22:03:51 2011 for SCIL by  doxygen 1.6.3