| 162 | } |
| 163 | |
| 164 | inline data_size_t Split( |
| 165 | int sub_feature, |
| 166 | const uint32_t* threshold, |
| 167 | int num_threshold, |
| 168 | bool default_left, |
| 169 | data_size_t* data_indices, data_size_t num_data, |
| 170 | data_size_t* lte_indices, data_size_t* gt_indices) const { |
| 171 | |
| 172 | uint32_t min_bin = bin_offsets_[sub_feature]; |
| 173 | uint32_t max_bin = bin_offsets_[sub_feature + 1] - 1; |
| 174 | uint32_t default_bin = bin_mappers_[sub_feature]->GetDefaultBin(); |
| 175 | if (bin_mappers_[sub_feature]->bin_type() == BinType::NumericalBin) { |
| 176 | auto missing_type = bin_mappers_[sub_feature]->missing_type(); |
| 177 | return bin_data_->Split(min_bin, max_bin, default_bin, missing_type, default_left, |
| 178 | *threshold, data_indices, num_data, lte_indices, gt_indices); |
| 179 | } else { |
| 180 | return bin_data_->SplitCategorical(min_bin, max_bin, default_bin, threshold, num_threshold, data_indices, num_data, lte_indices, gt_indices); |
| 181 | } |
| 182 | } |
| 183 | /*! |
| 184 | * \brief From bin to feature value |
| 185 | * \param bin |
nothing calls this directly
no test coverage detected