#include "dynamic_operation.h" namespace MultiArrayTools { template T DynamicOperation::get(const DExtT& pos) const { return mOp.get(pos.expl()); } template DynamicOperationBase& DynamicOperation::set(const DExtT& pos) { mOp.set(pos.expl()); return *this; } template DExtT DynamicOperation::rootSteps(std::intptr_t iPtrNum) const { return DExtT(mkDExt(mkExtT(mOp.rootSteps(iPtrNum))),None(0)); } template DynamicExpression DynamicOperation::loop(const DynamicExpression& exp) const { return mOp.loop(exp); } template const T* DynamicOperation::data() const { return mOp.data(); } template std::shared_ptr> DynamicOperation::deepCopy() const { return std::make_shared>(*this); } template DynamicOuterOp::DynamicOuterOp(const Operation& op, const std::shared_ptr&... inds) : mOp(op) { //...!!! // setup operations } template OpH> DynamicOuterOp::get(const DExtT& pos) const { mOp.get(pos.expl()); //... // execute assignment... care about threads!!! return OpH>(); // empty } template DynamicOperationBase>>& DynamicOuterOp::set(const DExtT& pos) { mOp.set(pos.expl()); return *this; } template DExtT DynamicOuterOp::rootSteps(std::intptr_t iPtrNum) const { return DExtT(mkDExt(mkExtT(mOp.rootSteps(iPtrNum))),None(0)); } template DynamicExpression DynamicOuterOp::loop(const DynamicExpression& exp) const { return mOp.loop(exp); } template const OpH>* DynamicOuterOp::data() const { return &mProto; } template std::shared_ptr>>> DynamicOuterOp::deepCopy() const { return std::make_shared>(*this); } } // namespace MultiArrayTools