def extract(self, high_bit, low_bit):
<EOL>ret = set()<EOL>bits = high_bit - low_bit + <NUM_LIT:1><EOL>for si in self._si_set:<EOL><INDENT>ret.add(si.extract(high_bit, low_bit))<EOL><DEDENT>if len(ret) > <NUM_LIT:1>:<EOL><INDENT>return DiscreteStridedIntervalSet(bits=bits, si_set=ret)<EOL><DEDENT>else:<EOL><INDENT>return list(ret)[<NUM_LIT:0>]<EOL><DEDENT>
Operation extract

:param high_bit:    The highest bit to begin extraction.
:param low_bit:     The lowest bit to end extraction.
:return:            Extracted bits.