for segment, unique_index in zip(segment_ids, unique_indices_inverse):
      xgrad_unique[unique_index] += ygrad[segment] * weights[segment]