51 const int64_t*
const row_splits,
52 const size_t row_splits_size,
53 const size_t out_col_size,
54 const T*
const default_value,
55 const size_t default_value_size,
58 tbb::blocked_range<size_t>(0, row_splits_size - 1),
59 [&](
const tbb::blocked_range<size_t>& r) {
60 for (int64_t i = r.begin(); i != r.end(); ++i) {
61 const int64_t start = row_splits[i];
62 const int64_t end = std::min(int64_t(out_col_size) + start,
66 out_values + i * out_col_size * default_value_size;
68 std::copy(values + start * default_value_size,
69 values + end * default_value_size, out_ptr);
72 out_ptr = out_ptr + (end - start) * default_value_size;
73 for (int64_t j = end - start; j < out_col_size;
74 ++j, out_ptr += default_value_size) {
75 std::copy(default_value,
76 default_value + default_value_size, out_ptr);
void RaggedToDenseCPU(const T *const values, const int64_t *const row_splits, const size_t row_splits_size, const size_t out_col_size, const T *const default_value, const size_t default_value_size, T *out_values)
Definition RaggedToDense.h:50