| 94 | } |
| 95 | |
| 96 | struct TSubsetIndexingForBuildBorders { |
| 97 | // for dense features, already composed with rawDataProvider's Subset, incremental |
| 98 | TFeaturesArraySubsetIndexing ComposedSubset; |
| 99 | |
| 100 | // for sparse features |
| 101 | TMaybe<TFeaturesArraySubsetInvertedIndexing> InvertedSubset; |
| 102 | |
| 103 | public: |
| 104 | TSubsetIndexingForBuildBorders() = default; |
| 105 | |
| 106 | // composedSubset is not necessarily incremental |
| 107 | TSubsetIndexingForBuildBorders( |
| 108 | const TFeaturesArraySubsetIndexing& srcIndexing, |
| 109 | const TFeaturesArraySubsetIndexing& subsetIndexing, |
| 110 | NPar::ILocalExecutor* localExecutor |
| 111 | ) { |
| 112 | ComposedSubset = MakeIncrementalIndexing(Compose(srcIndexing, subsetIndexing), localExecutor); |
| 113 | InvertedSubset = GetInvertedIndexing(subsetIndexing, srcIndexing.Size(), localExecutor); |
| 114 | } |
| 115 | }; |
| 116 | |
| 117 | // TODO(akhropov): maybe use different sample selection logic for sparse data |
| 118 | static TSubsetIndexingForBuildBorders GetSubsetForBuildBorders( |
no outgoing calls
no test coverage detected