Source code for probnum.utils.randomutils

import copy
from typing import Union

import numpy as np


[docs]def derive_random_seed(*args: Union[np.random.RandomState, np.random.Generator]) -> int: def _sample(rng: Union[np.random.RandomState, np.random.Generator]) -> int: if isinstance(rng, np.random.RandomState): return copy.copy(rng).randint(0, 2 ** 32, size=None, dtype=int) elif isinstance(rng, np.random.Generator): return copy.copy(rng).integers( 0, 2 ** 32, size=None, dtype=int, endpoint=False ) else: raise ValueError("Unsupported type of random number generator") seed = _sample(args[0]) for i in range(1, len(args)): seed = seed ^ _sample(args[i]) return seed