inline Constant get_dimension(const Tuple& k, size_t index) { Tuple::const_iterator i = k.find(index); if (i == k.end()) { throw DimensionNotFound(); } return i->second; }
TaggedConstant operator()(const Tuple& k) { Tuple::const_iterator iter = k.find(m_index); if (iter != k.end()) { return TaggedConstant(iter->second, k); } else { return TaggedConstant(Types::Special::create(SP_DIMENSION), k); } }