master-thesis/python/graveyard/richard_hops/sobolLib.py

34 lines
No EOL
749 B
Python

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