def _reverse(self):
o = self.copy()<EOL>o._reversed = not o._reversed<EOL>if o.bits == <NUM_LIT:8>:<EOL><INDENT>return o.copy()<EOL><DEDENT>if o.is_top:<EOL><INDENT>si = o.copy()<EOL>return si<EOL><DEDENT>else:<EOL><INDENT>if not o.is_integer:<EOL><INDENT>logger.warning('<STR_LIT>', self)<EOL><DEDENT>rounded_bits = ((o.bits + <NUM_LIT:7>) // <NUM_LIT:8>) * <NUM_LIT:8><EOL>list_bytes = [ ]<EOL>si = None<EOL>for i in xrange(<NUM_LIT:0>, rounded_bits, <NUM_LIT:8>):<EOL><INDENT>b = o._unrev_extract(min(i + <NUM_LIT:7>, o.bits - <NUM_LIT:1>), i)<EOL>list_bytes.append(b)<EOL><DEDENT>for b in list_bytes:<EOL><INDENT>si = b if si is None else si.concat(b)<EOL><DEDENT>si.uninitialized = self.uninitialized<EOL>si._reversed = o._reversed<EOL>return si<EOL><DEDENT>
This method reverses the StridedInterval object for real. Do expect loss of precision for most cases!

:return: A new reversed StridedInterval instance