Source code for tigercontrol.utils.random

"""
Implements pseudorandomness in our program
"""

import sys
import numpy as np
import jax.random as random
import tigercontrol

[docs]def set_key(key=None): ''' Descripton: Fix global random key to ensure reproducibility of results. Args: key (int): key that determines reproducible output ''' if key == None: key = int(np.random.random_integers(sys.maxsize)) assert type(key) == int tigercontrol.GLOBAL_RANDOM_KEY = random.PRNGKey(key)
[docs]def generate_key(): ''' Descripton: Generate random key. Returns: Random random key ''' key, subkey = random.split(tigercontrol.GLOBAL_RANDOM_KEY) tigercontrol.GLOBAL_RANDOM_KEY = key return subkey
[docs]def get_global_key(): ''' Descripton: Get current global random key. Returns: Current global random key ''' return tigercontrol.GLOBAL_RANDOM_KEY