code: def sdiv(self, o):
          
          # TODO: copy the code from wrapped interval
          splitted_dividends = self._psplit()
          splitted_divisors = o._psplit()
  
          resulting_intervals = set()
          for dividend in splitted_dividends:
              for divisor in splitted_divisors:
                  tmp = self._wrapped_signed_div(dividend, divisor)
                  resulting_intervals.add(tmp)
  
          return StridedInterval.least_upper_bound(*resulting_intervals).normalize()
docs: Binary operation: signed division
  
          :param o: The divisor
          :return: (self / o) in signed arithmetic