diff --git a/random.py b/random.py index bb3f7e29dde17e74ed4cf6548ccd16875cd5624c..7e84e23f0ec0da3e0a5200df085d589ff9bbc7bd 100644 --- a/random.py +++ b/random.py @@ -109,3 +109,14 @@ class PhiloxFourFloats(CustomCodeNode): def __repr__(self): return "{}, {}, {}, {} <- PhiloxRNG".format(*self.result_symbols) + + +def random_symbol(assignment_list, rng_node=PhiloxTwoDoubles, *args, **kwargs): + while True: + node = rng_node(*args, **kwargs) + inserted = False + for symbol in node.result_symbols: + if not inserted: + assignment_list.insert(0, node) + inserted = True + yield symbol