/** Number of operands/members. */
unsigned basic::nops() const
{
+ // iterating from 0 to nops() on atomic objects should be an empty loop,
+ // and accessing their elements is a range error. Container objects should
+ // override this.
return 0;
}
/* Perform automatic symbolic evaluations on expression. */
ex basic::eval(int level) const
{
+ // There is nothing to do for basic objects:
return this->hold();
}
/** Evaluate object numerically. */
ex basic::evalf(int level) const
{
+ // There is nothing to do for basic objects:
return *this;
}