| 252 | } |
| 253 | |
| 254 | TConstArrayRef<TNonSymmetricTreeStepNode> GetTreeStepNodes(const TFullModel& model, size_t treeIdx) { |
| 255 | CB_ENSURE(treeIdx < model.GetTreeCount(), |
| 256 | "Requested tree step nodes for tree " << treeIdx << ", but model has " << model.GetTreeCount()); |
| 257 | Y_ASSERT(!model.IsOblivious()); |
| 258 | const size_t offset = model.ModelTrees->GetModelTreeData()->GetTreeStartOffsets()[treeIdx]; |
| 259 | const auto start = model.ModelTrees->GetModelTreeData()->GetNonSymmetricStepNodes().begin() + offset; |
| 260 | const auto end = start + model.ModelTrees->GetModelTreeData()->GetTreeSizes()[treeIdx]; |
| 261 | return TConstArrayRef<TNonSymmetricTreeStepNode>(start, end); |
| 262 | } |
| 263 | |
| 264 | TVector<ui32> GetTreeNodeToLeaf(const TFullModel& model, size_t treeIdx) { |
| 265 | CB_ENSURE(treeIdx < model.GetTreeCount(), |
nothing calls this directly
no test coverage detected