import numpy as np import sobol_lib as sbl seed_init = 15 seed = seed_init def resetSobolSeed(): global seed global seed_init seed = seed_init def setSobolInitSeed(seed_init_new): global seed_init seed_init = seed_init_new def incSobolSeed(n): global seed seed += n def getNextSobol(dim = 1): global seed x, seed = sbl.i4_sobol(dim, seed) return np.array(x) def uni01_to_normal(x_uni): assert len(x_uni) % 2 == 0 x_normal = np.empty(len(x_uni)) for i in range(len(x_uni)//2): phi = x_uni[2*i]*2*np.pi r = np.sqrt(- 2*np.log(1-x_uni[2*i+1])) z = r * np.exp(1j*phi) x_normal[2*i] = np.real(z) x_normal[2*i+1] = np.imag(z) return x_normal