| 143 | |
| 144 | template <class TColumn> |
| 145 | static ui32 GetNonDefaultValuesCount(const TColumn& srcFeature) { |
| 146 | using TDenseData = TPolymorphicArrayValuesHolder<TColumn>; |
| 147 | using TSparseData = TSparsePolymorphicArrayValuesHolder<TColumn>; |
| 148 | |
| 149 | if (const auto* denseData = dynamic_cast<const TDenseData*>(&srcFeature)) { |
| 150 | return denseData->GetSize(); |
| 151 | } else if (const auto* sparseData = dynamic_cast<const TSparseData*>(&srcFeature)) { |
| 152 | return sparseData->GetData().GetNonDefaultSize(); |
| 153 | } else { |
| 154 | CB_ENSURE_INTERNAL(false, "GetNonDefaultValuesCount: unsupported column type"); |
| 155 | } |
| 156 | } |
| 157 | |
| 158 | |
| 159 | static ui64 EstimateMemUsageForFloatFeature( |
no test coverage detected