this assumes that the returned array will be of the same size as tops. This will be true in practice since they are both arrays of doubles, but I think the code would be more robust if it called `resize(bottoms, tops.size())` instead of `grow(bottoms, owningBucketOrdinal+1)`.