2020-07-10 00:17:38 +02:00
|
|
|
|
|
|
|
#include "dynamic_operation.h"
|
|
|
|
|
|
|
|
namespace MultiArrayTools
|
|
|
|
{
|
|
|
|
template <typename T, class Operation>
|
2020-07-13 01:00:35 +02:00
|
|
|
const T& DynamicOperation<T,Operation>::get(const DExtT& pos) const
|
2020-07-10 00:17:38 +02:00
|
|
|
{
|
2020-08-12 00:39:12 +02:00
|
|
|
if(pos.isInit()){
|
|
|
|
VCHECK(pos.stype());
|
|
|
|
ET xx;
|
|
|
|
VCHECK(xx.stype());
|
|
|
|
VCHECK(mOp.rootSteps(0).stype());
|
|
|
|
VCHECK(pos.expl<ET>().val());
|
|
|
|
return mOp.get(pos.expl<ET>());
|
|
|
|
}
|
|
|
|
else {
|
|
|
|
ET xx;
|
|
|
|
return mOp.get(xx);
|
|
|
|
}
|
2020-07-10 00:17:38 +02:00
|
|
|
}
|
|
|
|
|
|
|
|
template <typename T, class Operation>
|
2020-07-13 01:00:35 +02:00
|
|
|
DynamicOperationBase<T>& DynamicOperation<T,Operation>::set(const DExtT& pos)
|
2020-07-10 00:17:38 +02:00
|
|
|
{
|
|
|
|
mOp.set(pos.expl<ET>());
|
|
|
|
return *this;
|
|
|
|
}
|
|
|
|
|
|
|
|
template <typename T, class Operation>
|
2020-07-13 01:00:35 +02:00
|
|
|
DExtT DynamicOperation<T,Operation>::rootSteps(std::intptr_t iPtrNum) const
|
2020-07-10 00:17:38 +02:00
|
|
|
{
|
|
|
|
return mOp.rootSteps(iPtrNum);
|
|
|
|
}
|
|
|
|
|
|
|
|
template <typename T, class Operation>
|
|
|
|
DynamicExpression DynamicOperation<T,Operation>::loop(const DynamicExpression& exp) const
|
|
|
|
{
|
|
|
|
return mOp.loop(exp);
|
|
|
|
}
|
|
|
|
|
|
|
|
template <typename T, class Operation>
|
|
|
|
const T* DynamicOperation<T,Operation>::data() const
|
|
|
|
{
|
|
|
|
return mOp.data();
|
|
|
|
}
|
|
|
|
|
2020-07-13 01:00:35 +02:00
|
|
|
|
2020-07-10 00:17:38 +02:00
|
|
|
} // namespace MultiArrayTools
|