1325 unionHypercube(hc, i->hypercube(),
false);
1328 vector<string> unionDims; unionDims.reserve(hc.xvectors.size());
1329 for (
auto& i: hc.xvectors) unionDims.push_back(i.name);
1334 set <string> argDims;
1335 for (
auto& j: i->hypercube().xvectors) argDims.insert(j.name);
1336 auto spread=make_shared<SpreadLast>();
1338 for (
auto& j: hc.xvectors)
1339 if (!argDims.contains(j.name))
1340 spreadHC.xvectors.push_back(j);
1341 spread->setArgument(i,{});
1342 spread->setSpreadDimensions(spreadHC);
1344 auto pivot=make_shared<Pivot>();
1345 pivot->setArgument(spread,{});
1346 pivot->setOrientation(unionDims);
1348 if (pivot->hypercube()==hc)
1352 auto spreadOverHC=make_shared<SpreadOverHC>();
1353 spreadOverHC->hypercube(hc);
1354 spreadOverHC->setArgument(pivot,{});