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

Function MergeCtrProvidersData

catboost/libs/model/ctr_provider.cpp:7–23  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

5
6
7TIntrusivePtr<ICtrProvider> MergeCtrProvidersData(const TVector<TIntrusivePtr<ICtrProvider>>& providers, ECtrTableMergePolicy mergePolicy) {
8 TVector<const TStaticCtrProvider*> nonEmptyStaticProviders;
9 for (const auto& provider : providers) {
10 if (provider) {
11 const TStaticCtrProvider* staticCtr = dynamic_cast<const TStaticCtrProvider*>(provider.Get());
12 CB_ENSURE(staticCtr != nullptr, "only static ctr providers merging supported for now");
13 nonEmptyStaticProviders.emplace_back(staticCtr);
14 }
15 }
16 if (nonEmptyStaticProviders.empty()) {
17 return TIntrusivePtr<ICtrProvider>();
18 }
19 if (nonEmptyStaticProviders.size() == 1) {
20 return nonEmptyStaticProviders.back()->Clone();
21 }
22 return MergeStaticCtrProvidersData(nonEmptyStaticProviders, mergePolicy);
23}

Callers 1

SumModelsFunction · 0.85

Calls 7

GetMethod · 0.45
emplace_backMethod · 0.45
emptyMethod · 0.45
sizeMethod · 0.45
CloneMethod · 0.45
backMethod · 0.45

Tested by

no test coverage detected