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