#!/usr/bin/env python
+# Any copyright is dedicated to the Public Domain.
+# https://creativecommons.org/publicdomain/zero/1.0/
+
+# Written by Francois Fleuret <francois@fleuret.org>
+
import math
import torch, torchvision
######################################################################
-def generate(nb_starting_values=3, max_input=9, prog_len=6, nb_runs=5):
+def generate(
+ nb_starting_values=3, nb_result_values_max=None, max_input=9, prog_len=6, nb_runs=5
+):
prog_len = (1 + torch.randint(2 * prog_len, (1,))).clamp(max=prog_len).item()
while True:
result = result + ["<prog>"] + prog
result = result + ["<end>"]
- if no_empty_stack:
+
+ if no_empty_stack and (
+ nb_result_values_max is None or len(result_stack) <= nb_result_values_max
+ ):
break
return result