@staticmethod<EOL><INDENT>def _wrapped_signed_div(a, b):<DEDENT>
bits = max(a.bits, b.bits)<EOL>divisor_lb = b.lower_bound<EOL>divisor_ub = b.upper_bound<EOL>uninit_flag = a.uninitialized | b.uninitialized<EOL>if divisor_lb == <NUM_LIT:0>:<EOL><INDENT>if divisor_ub == <NUM_LIT:0>:<EOL><INDENT>return StridedInterval.empty(bits)<EOL><DEDENT>else:<EOL><INDENT>divisor_lb = <NUM_LIT:1><EOL><DEDENT><DEDENT>if divisor_ub == <NUM_LIT:0>:<EOL><INDENT>divisor_ub = (divisor_ub - <NUM_LIT:1>) & (<NUM_LIT:2> ** bits - <NUM_LIT:1>)<EOL><DEDENT>dividend_positive = StridedInterval._is_msb_zero(a.lower_bound, bits)<EOL>divisor_positive = StridedInterval._is_msb_zero(b.lower_bound, bits)<EOL>stride = <NUM_LIT:1><EOL>if dividend_positive and divisor_positive:<EOL><INDENT>lb = a.lower_bound // divisor_ub<EOL>ub = a.upper_bound // divisor_lb<EOL><DEDENT>elif dividend_positive and not divisor_positive:<EOL><INDENT>lb = a.upper_bound // StridedInterval._unsigned_to_signed(divisor_ub, bits)<EOL>ub = a.lower_bound // StridedInterval._unsigned_to_signed(divisor_lb, bits)<EOL><DEDENT>elif not dividend_positive and divisor_positive:<EOL><INDENT>lb = StridedInterval._unsigned_to_signed(a.lower_bound, bits) // divisor_lb<EOL>ub = StridedInterval._unsigned_to_signed(a.upper_bound, bits) // divisor_ub<EOL><DEDENT>else:<EOL><INDENT>lb = StridedInterval._unsigned_to_signed(a.upper_bound, bits) //StridedInterval._unsigned_to_signed(b.lower_bound, bits)<EOL>ub = StridedInterval._unsigned_to_signed(a.lower_bound, bits) //StridedInterval._unsigned_to_signed(b.upper_bound, bits)<EOL><DEDENT>return StridedInterval(bits=bits, stride=stride, lower_bound=lb, upper_bound=ub, uninitialized=uninit_flag)<EOL>
Perform wrapped unsigned division on two StridedIntervals.

:param a: The dividend (StridedInterval)
:param b: The divisor (StridedInterval)
:return: The quotient