You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
However, the first 4 points in a 1 dimensional Sobol' sample should be [0, .5, .25, .75]. The output are points at index 5 to 8.
I am looping in my collaborator @fjhickernell, an expert in QMC methods who will be valuable to this discussion.
The text was updated successfully, but these errors were encountered:
I believe this is caused by the “famous” debate about starting the Sobol sequence at zero (-> theory) or not (-> practical implementation). QuasiMonteCarlo.jl uses Sobol.jl which use the latter convention (drop zero), see related issue and refs therein (Owen' paper).
This debate was started way back I believed and amplified with Pytorch using the drop zero solution. @fjhickernell probably knows better.
Meanwhile, a while ago, I ported the R Owen (@dcarrera you suggested that at some point) code to do scrambling in a package RandomizedQuasiMonteCarlo.jl.
There, you can find the implementation starting at zero.
Note: I don't maintain the package anymore since all its features have been moved in QuasiMonteCarlo.jl (excepted the following function, in fact).
using RandomizedQuasiMonteCarlo
m =2
N =2^m # Number of points
d =1# dimension
b =2# always 2 for Sobol
M =32# number of bits to encode points
unrandomized_bits =sobol_pts2bits(m, d, M)
u_sobol =dropdims(mapslices(bits2unif, unrandomized_bits, dims=3), dims=3)
yields
4×1 Matrix{Rational{Int64}}:0//11//21//43//4
I believe this convention should be specified somewhere in bold in Readme.md and docs.
Running the following code
yields
However, the first 4 points in a 1 dimensional Sobol' sample should be [0, .5, .25, .75]. The output are points at index 5 to 8.
I am looping in my collaborator @fjhickernell, an expert in QMC methods who will be valuable to this discussion.
The text was updated successfully, but these errors were encountered: