                                                                                         gdf_columns_to_hash.data())};
 
   gdf_error gdf_status{GDF_SUCCESS};
+
   switch(hash)
   {
     case GDF_HASH_MURMUR3:

  size_type * const __restrict__ partition_offsets;
};

template <typename column_type,
          typename size_type>
gdf_error scatter_column(column_type const * const __restrict__ input_column,
                         size_type const num_rows,
                         size_type const * const __restrict__ row_output_locations,
                         column_type * const __restrict__ partitioned_output_column)
{

  gdf_error gdf_status{GDF_SUCCESS};

  }
};

/* --------------------------------------------------------------------------*/
/** 
 * @brief Computes which partition each row of a gdf_table will belong to based
   on hashing each row, and applying a partition function to the hash value. 
   Also computes the number of rows that belong to each partition.
 * 
 * @Param[in] the_table The table whose rows will be partitioned
 * @Param[in] num_rows The number of rows in the table
 * @Param[in] num_partitions The number of partitions to divide the rows into
 * @Param[in] the_partitioner The functor that maps a rows hash value to a partition number
 * @Param[out] row_partition_numbers Array that holds which partition each row belongs to
 * @Param[out] partition_sizes The number of rows in each partition.
 */
/* ----------------------------------------------------------------------------*/
template <template <typename> class hash_function,
          typename partitioner_type,
          typename size_type>
