star-4v_s

An invariant property of diffuse random walks
git clone git://git.meso-star.fr/star-4v_s.git
Log | Files | Refs | README | LICENSE

commit c2d9d411adc7e599b1f9264730b0d28240bc8d01
parent 08665c66eacc289cde22f220bc464971c17d128f
Author: Christophe Coustet <christophe.coustet@meso-star.com>
Date:   Tue, 29 Mar 2016 14:12:57 +0200

BugFix in the standard error computation

Sum of x² was wrong

Diffstat:
Msrc/s4vs.c | 6++----
1 file changed, 2 insertions(+), 4 deletions(-)

diff --git a/src/s4vs.c b/src/s4vs.c @@ -57,7 +57,7 @@ realization(struct ssp_rng* rng, struct context* ctx) { struct s3d_attrib attrib; struct s3d_primitive prim; - double lambda, sum = 0, sum2 = 0; + double lambda, sum = 0; float normal[3], direction[4], origin[3], range[2], st[2]; struct s3d_hit hit; int nfailures = 0; @@ -107,11 +107,9 @@ realization(struct ssp_rng* rng, struct context* ctx) lambda = ssp_ran_exp(rng, ctx->ks); if(lambda >= hit.distance) { sum += hit.distance; - sum2 += hit.distance * hit.distance; break; } else { sum += lambda; - sum2 += lambda * lambda; f3_add(origin, origin, f3_mulf(direction, direction, (float)lambda)); do { @@ -133,7 +131,7 @@ realization(struct ssp_rng* rng, struct context* ctx) #pragma omp atomic update ctx->sum += sum; #pragma omp atomic update - ctx->sum2 += sum2; + ctx->sum2 += sum * sum; #pragma omp atomic update ctx->nfailures += nfailures; }