author | Lesley De Cruz <lesley.decruz+git@gmail.com> | 2012年01月22日 11:46:07 +0100 |
---|---|---|
committer | Francesco Abbate <francesco.bbt@gmail.com> | 2012年01月22日 13:12:16 +0100 |
commit | 17a0c5fb5ebaed9a694b8f48e14eb085ffcb9ab1 (patch) | |
tree | 732cdbc66088507432e621c6bca47bccf6e64c94 | |
parent | 6b25f005dea40a4e8fc859afee2bc09f746a11e2 (diff) | |
download | gsl-shell-17a0c5fb5ebaed9a694b8f48e14eb085ffcb9ab1.tar.gz |
-rw-r--r-- | benchmarks/integration/vegas-bench.c | 2 | ||||
-rw-r--r-- | benchmarks/integration/vegas-bench.lua | 34 |
diff --git a/benchmarks/integration/vegas-bench.c b/benchmarks/integration/vegas-bench.c index 36415334..cc45ac74 100644 --- a/benchmarks/integration/vegas-bench.c +++ b/benchmarks/integration/vegas-bench.c @@ -59,5 +59,5 @@ main (void) display_results ("vegas final", res, err, i); gsl_monte_vegas_free (s); - return 1; + return 0; } diff --git a/benchmarks/integration/vegas-bench.lua b/benchmarks/integration/vegas-bench.lua index 8546581f..418ce587 100644 --- a/benchmarks/integration/vegas-bench.lua +++ b/benchmarks/integration/vegas-bench.lua @@ -1,20 +1,20 @@ -math.randomseed(31) local monte_vegas = num.monte_vegas -local function testdim(n) - local lo,hi = 0,2 - local exact = n*(n+1)/2 * (hi^3 - lo^3)/3 * (hi-lo)^(n-1) - local t={} - local a,b={},{} - for i=1,n do - t[i]=string.format("%s*x[%s]^2",i,i) - a[i],b[i]=lo,hi - end - local s=table.concat(t,"+") - io.write("Integrating ",s,"\nExact integral = ",exact,"\n") - local calls = 1e6*n - local r = rng.new('taus2') - local result,sigma,runs,cont = monte_vegas(loadstring("return |x| "..s)(),a,b,calls,r) - io.write( string.format([[ +local n=9 +local lo,hi = 0,2 +local exact = n*(n+1)/2 * (hi^3 - lo^3)/3 * (hi-lo)^(n-1) +local a,b={},{} +for i=1,n do + a[i],b[i]=lo,hi +end +local calls = 1e6*n +local r = rng.new('taus2') +r:set(30776) +local function f(x) + return 1*x[1]^2+2*x[2]^2+3*x[3]^2+4*x[4]^2+5*x[5]^2+6*x[6]^2+7*x[7]^2+8*x[8]^2+9*x[9]^2 +end + +local result,sigma,runs,cont = monte_vegas(f,a,b,calls,r) +io.write( string.format([[ ================== result = %.6f sigma = %.6f @@ -22,6 +22,4 @@ exact = %.6f error = %.6f = %.2g sigma i = %d ]] ,result,sigma,exact, result - exact, math.abs(result - exact)/sigma, runs)) -end - testdim(9) |