docs: def sholl_crossings(neurites, center, radii):
      '''calculate crossings of neurites
  
      Args:
          nrn(morph): morphology on which to perform Sholl analysis
          radii(iterable of floats): radii for which crossings will be counted
  
      Returns:
          Array of same length as radii, with a count of the number of crossings
          for the respective radius
      '''
      def _count_crossings(neurite, radius):
          '''count_crossings of segments in neurite with radius'''
          r2 = radius ** 2
          count = 0
          for start, end in iter_segments(neurite):
              start_dist2, end_dist2 = (morphmath.point_dist2(center, start),
                                        morphmath.point_dist2(center, end))
  
              count += int(start_dist2 <= r2 <= end_dist2 or
                           end_dist2 <= r2 <= start_dist2)
  
          return count
  
      return np.array([sum(_count_crossings(neurite, r)
                           for neurite in iter_neurites(neurites))
                       for r in radii])