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

Function OptimizeTreeEncoding

library/cpp/par/distr_tree.cpp:183–199  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

181 const ui16 N_GROUP_FIRST_CODE = 0xfffe;
182
183 static void OptimizeTreeEncoding(TVector<ui16>* res) {
184 TVector<ui16>& vec = *res;
185 for (int i = 0; i < vec.ysize();) {
186 if (vec[i] == N_GROUP_START && vec[i + 1] == N_GROUP_END)
187 vec.erase(vec.begin() + i, vec.begin() + i + 2);
188 else if (vec[i] == N_GROUP_START && vec[i + 2] == N_GROUP_END) {
189 vec[i] = vec[i + 1];
190 vec.erase(vec.begin() + i + 1, vec.begin() + i + 3);
191 ++i;
192 } else
193 ++i;
194 }
195 if (vec[0] == N_GROUP_START && vec.back() == N_GROUP_END) {
196 vec.erase(vec.begin());
197 vec.erase(vec.end() - 1);
198 }
199 }
200
201 static void EncodeTreeImpl(const TDistrTree& t, TVector<ui16>* res) {
202 if (t.Children.empty()) {

Callers 1

EncodeTreeFunction · 0.85

Calls 5

ysizeMethod · 0.45
eraseMethod · 0.45
beginMethod · 0.45
backMethod · 0.45
endMethod · 0.45

Tested by

no test coverage detected