docs: def work(self, i):
          """
          Internal function that performs the pair-counting
          """
          n1, n2 = self.p[i]
  
          # initialize the total arrays for this process
          sum1 = numpy.zeros_like(self.sum1g)
          sum2 = 1.
          if not self.pts_only: sum2 = numpy.zeros_like(self.sum2g)
  
          if self.compute_mean_coords:
              N = numpy.zeros_like(self.N)
              centers_sum = [numpy.zeros_like(c) for c in self.centers]
          else:
              N = None; centers_sum = None
  
          if self.bins.enable_fast_node_count:
              # field x points is not supported.
              # because it is more likely need to deal
              # with broadcasting
              sum1attrs = [ d.attr for d in self.data ]
  
              counts, sum1c = n1.count(n2, self.bins.edges,
                                  attrs=sum1attrs)
              sum1[..., :-1] = sum1c
              sum1[..., -1] = 0
          else:
  
              def callback(r, i, j):
                  # just call the binning function, passing the
                  # sum arrays to fill in
                  self.bins.update_sums(r, i, j, self.data[0], self.data[1], sum1, sum2, N=N, centers_sum=centers_sum)
  
              n1.enum(n2, self.bins.Rmax, process=callback)
  
          if not self.compute_mean_coords:
              return sum1, sum2
          else:
              return sum1, sum2, N, centers_sum