mirror of
https://github.com/vale981/master-thesis
synced 2025-03-06 10:31:37 -05:00
34 lines
No EOL
749 B
Python
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 |