00001 #include <scil/variable.h>
00002 #include <scil/var_obj.h>
00003 #include <scil/row.h>
00004
00005 using namespace SCIL;
00006
00007 int SCIL::Hash(var v) { return LEDA::Hash((void*) v.var_pointer()); };
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
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* (double d) {
00040 return row(*this)*d;
00041 }
00042
00043 bool var::operator< (const var& v1) const {
00044 return VS<v1.VS;
00045 }
00046
00047 bool var::operator<= (const var& v1) const {
00048 return VS<=v1.VS;
00049 }
00050
00051 bool var::operator!= (const var& v1) const {
00052 return VS!=v1.VS;
00053 }
00054
00055 bool var::operator== (const var& v1) const {
00056 return VS==v1.VS;
00057 }
00058
00059 bool var::operator> (const var& v1) const {
00060 return VS>v1.VS;
00061 }
00062
00063 int SCIL::compare(const var& v1, const var& v2) {
00064 if(v1>v2) return 1;
00065 if(v1<v2) return -1;
00066 return 0;
00067 }