From 70a37ce3f182e2056013436b96509b06f39f6c89 Mon Sep 17 00:00:00 2001 From: Fredrik Bagge Carlson <fredrikb@control.lth.se> Date: Thu, 10 Sep 2015 22:39:14 +0200 Subject: [PATCH] Added memory to output so that one can get different sequences --- src/sobol.jl | 31 +++++++++++++++++++++++++++++-- 1 file changed, 29 insertions(+), 2 deletions(-) diff --git a/src/sobol.jl b/src/sobol.jl index b5e509e..64b455d 100644 --- a/src/sobol.jl +++ b/src/sobol.jl @@ -32,7 +32,16 @@ function sobol(dim::Int64, N::Int64) X[j,:], nextseed, MeM = getNewSobolVector(dim, nextseed, MeM) end - return X + return X, nextseed, MeM +end + +function sobol(X, nextseed, MeM) + (N,dim) = size(X) + for j = 1:N + X[j,:], nextseed, MeM = getNewSobolVector(dim, nextseed, MeM) + end + + return X, nextseed, MeM end ## Functions below are inner functions, I have not determined if this is needed, the fastest method or anything else @@ -106,7 +115,7 @@ end function InitSobol(dim::Int64) MeM = Mem(dim) MeM.seed_save = -1 -# MeM.v = zeros(40,30) # done in constructor instead + # MeM.v = zeros(40,30) # done in constructor instead MeM.v[1:40,1] = 1 MeM.v[3:40,2] = [1, 3, 1, 3, 1, 3, 3, 1, @@ -188,4 +197,22 @@ function InitSobol(dim::Int64) return MeM end +""" +`using Winston` +Plots the first 4 outputs of sobel(2,512) +""" +function test_sobol() + X, nextseed, MeM = sobol(2,512) + figure(); pp = plot(X[:,1],X[:,2],".b"); hold(true) + + X, nextseed, MeM = sobol(X, nextseed, MeM ) + plot(X[:,1],X[:,2],".g") + + X, nextseed, MeM = sobol(X, nextseed, MeM ) + plot(X[:,1],X[:,2],".r") + + X, nextseed, MeM = sobol(X, nextseed, MeM ) + plot(X[:,1],X[:,2],".m") + display(pp) +end \ No newline at end of file -- GitLab