| 1412 | |
| 1413 | |
| 1414 | NCB::TFeatureGroupsData::TFeatureGroupsData( |
| 1415 | const NCB::TFeaturesLayout& featuresLayout, |
| 1416 | TVector<NCB::TFeaturesGroup>&& metaData |
| 1417 | ) |
| 1418 | : MetaData(std::move(metaData)) |
| 1419 | , SrcData(MetaData.size()) |
| 1420 | { |
| 1421 | FlatFeatureIndexToGroupPart.resize(featuresLayout.GetExternalFeatureCount()); |
| 1422 | |
| 1423 | for (ui32 groupIdx : xrange(SafeIntegerCast<ui32>(MetaData.size()))) { |
| 1424 | const auto& group = MetaData[groupIdx]; |
| 1425 | for (ui32 inGroupIdx : xrange(SafeIntegerCast<ui32>(group.Parts.size()))) { |
| 1426 | TFeaturesGroupIndex featuresGroupIndex{groupIdx, inGroupIdx}; |
| 1427 | const auto& groupPart = group.Parts[inGroupIdx]; |
| 1428 | const ui32 flatFeatureIdx |
| 1429 | = featuresLayout.GetExternalFeatureIdx(groupPart.FeatureIdx, groupPart.FeatureType); |
| 1430 | FlatFeatureIndexToGroupPart[flatFeatureIdx] = featuresGroupIndex; |
| 1431 | } |
| 1432 | } |
| 1433 | } |
| 1434 | |
| 1435 | |
| 1436 | void NCB::TFeatureGroupsData::GetSubsetWithScheduling( |
nothing calls this directly
no test coverage detected