def eval(self, n, signed=False):
if self.is_empty:<EOL><INDENT>return [ ]<EOL><DEDENT>if self._reversed:<EOL><INDENT>return self._reverse().eval(n, signed=signed)<EOL><DEDENT>results = [ ]<EOL>if self.stride == <NUM_LIT:0> and n > <NUM_LIT:0>:<EOL><INDENT>results.append(self.lower_bound)<EOL><DEDENT>else:<EOL><INDENT>if signed:<EOL><INDENT>bounds = self._signed_bounds()<EOL><DEDENT>else:<EOL><INDENT>bounds = self._unsigned_bounds()<EOL><DEDENT>for lb, ub in bounds:<EOL><INDENT>while len(results) < n and lb <= ub:<EOL><INDENT>results.append(lb)<EOL>lb += self.stride <EOL><DEDENT><DEDENT><DEDENT>return results<EOL>
Evaluate this StridedInterval to obtain a list of concrete integers.

:param n: Upper bound for the number of concrete integers
:param signed: Treat this StridedInterval as signed or unsigned
:return: A list of at most `n` concrete integers