MCPcopy Create free account
hub / github.com/catboost/catboost / GenerateSubtasks

Function GenerateSubtasks

library/cpp/par/distr_tree.cpp:279–298  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

277 }
278
279 void GenerateSubtasks(const TVector<ui16>& src, TVector<TVector<ui16>>* subTasks) {
280 for (int i = 0; i < src.ysize(); ++i) {
281 TVector<ui16>& dst = subTasks->emplace_back();
282 if (src[i] == N_GROUP_START) {
283 // embedded group
284 int depth = 1;
285 for (++i; i < src.ysize(); ++i) {
286 ui16 val = src[i];
287 if (val == N_GROUP_END) {
288 if (--depth == 0)
289 break;
290 } else if (val == N_GROUP_START)
291 ++depth;
292 dst.push_back(src[i]);
293 }
294 Y_ASSERT(depth == 0);
295 } else
296 dst.push_back(src[i]);
297 }
298 }
299
300 int SelectRandomHost(const TVector<ui16>& execPlan) {
301 size_t ptr = RandomNumber(execPlan.size());

Callers 1

LaunchOpsMethod · 0.85

Calls 3

ysizeMethod · 0.45
emplace_backMethod · 0.45
push_backMethod · 0.45

Tested by

no test coverage detected