#include "utils.h"
#include "debugmsg.h"
+#include "exprseq.h" // !!
+
namespace GiNaC {
GINAC_IMPLEMENT_REGISTERED_CLASS(idx, basic)
return inherited::info(inf);
}
+unsigned idx::nops() const
+{
+ // don't count the dimension as that is not really a sub-expression
+ return 1;
+}
+
+ex & idx::let_op(int i)
+{
+ GINAC_ASSERT(i == 0);
+ return value;
+}
+
/** Returns order relation between two indices of the same type. The order
* must be such that dummy indices lie next to each other. */
int idx::compare_same_type(const basic & other) const
// Otherwise substitute value
idx *i_copy = static_cast<idx *>(duplicate());
i_copy->value = lr.op(i);
+ i_copy->clearflag(status_flags::hash_calculated);
return i_copy->setflag(status_flags::dynallocated);
}
}
idx *i_copy = static_cast<idx *>(duplicate());
i_copy->value = subsed_value;
+ i_copy->clearflag(status_flags::hash_calculated);
return i_copy->setflag(status_flags::dynallocated);
}