2020-09-11 13:12:37 +02:00
|
|
|
|
2021-07-28 19:55:37 +02:00
|
|
|
#include "cnorxz.h"
|
|
|
|
#include "hl_cnorxz.h"
|
2020-09-11 13:12:37 +02:00
|
|
|
|
|
|
|
namespace MultiArrayTools
|
|
|
|
{
|
|
|
|
std::shared_ptr<DynamicIndex> mkSubSpaceX(const std::shared_ptr<DynamicIndex>& di,
|
|
|
|
size_t max)
|
|
|
|
{
|
|
|
|
auto& o = di->range()->orig();
|
|
|
|
vector<std::shared_ptr<RangeBase>> ox(o.begin(),o.begin()+max);
|
|
|
|
DynamicRangeFactory drf(ox);
|
|
|
|
auto dr = createExplicit(drf);
|
|
|
|
auto odi = getIndex(dr);
|
|
|
|
vector<std::shared_ptr<IndexW>> iv;
|
|
|
|
iv.reserve(max);
|
|
|
|
for(size_t i = 0; i != max; ++i){
|
|
|
|
iv.push_back(di->getP(i));
|
|
|
|
}
|
|
|
|
(*odi)(iv);
|
|
|
|
return odi;
|
|
|
|
}
|
|
|
|
|
2020-09-16 20:19:21 +02:00
|
|
|
template class OperationRoot<double,CR,DynamicRange>;
|
|
|
|
template class OperationRoot<double,DynamicRange>;
|
|
|
|
|
|
|
|
template class HighLevelOpHolder<OpCD>;
|
|
|
|
template class HighLevelOpHolder<OpD>;
|
|
|
|
|
|
|
|
template class HighLevelOpBase<OpCD>;
|
|
|
|
template class HighLevelOpBase<OpD>;
|
|
|
|
template class HighLevelOpRoot<OpCD>;
|
|
|
|
template class HighLevelOpRoot<OpD>;
|
|
|
|
|
2020-09-20 13:37:44 +02:00
|
|
|
template HighLevelOpHolder<OpCD> mkHLO(const OpCD& op);
|
|
|
|
template HighLevelOpHolder<OpD> mkHLO(const OpD& op);
|
|
|
|
template HighLevelOpHolder<OpCD> mkHLOV(double val);
|
|
|
|
template HighLevelOpHolder<OpD> mkHLOV(double val);
|
|
|
|
|
2020-09-11 13:12:37 +02:00
|
|
|
}
|