TeX_name = "\\mbox{" + name + "}";
else
TeX_name = texname;
- setflag(status_flags::evaluated);
+ setflag(status_flags::evaluated | status_flags::expanded);
}
constant::constant(const std::string & initname, const numeric & initnumber, const std::string & texname)
TeX_name = "\\mbox{" + name + "}";
else
TeX_name = texname;
- setflag(status_flags::evaluated);
+ setflag(status_flags::evaluated | status_flags::expanded);
}
//////////
}
//////////
-// functions overriding virtual functions from bases classes
+// functions overriding virtual functions from base classes
//////////
// public
// protected
-/** Implementation of ex::diff() for a constant. It always returns 0.
+/** Implementation of ex::diff() for a constant always returns 0.
*
* @see ex::diff */
ex constant::derivative(const symbol & s) const
int constant::compare_same_type(const basic & other) const
{
GINAC_ASSERT(is_exactly_of_type(other, constant));
- // const constant & o=static_cast<constant &>(const_cast<basic &>(other));
- // return name.compare(o.name);
- const constant *o = static_cast<const constant *>(&other);
- if (serial==o->serial) return 0;
- return serial < o->serial ? -1 : 1;
+ const constant &o = static_cast<const constant &>(other);
+
+ if (serial == o.serial)
+ return 0;
+ else
+ return serial < o.serial ? -1 : 1;
}
bool constant::is_equal_same_type(const basic & other) const
{
GINAC_ASSERT(is_exactly_of_type(other, constant));
- const constant *o = static_cast<const constant *>(&other);
- return serial==o->serial;
+ const constant &o = static_cast<const constant &>(other);
+
+ return serial == o.serial;
}
unsigned constant::calchash(void) const