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:
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;
}