However, the "obvious" fix
seems to break ra_pareto, for unknown reasons.

It's not this change that breaks ra_pareto: it was _already_ totally broken on i386 (all-0s output).

Not using the name 'tmp' for two different variables gives some nonzero output:

--- a/src/hyantes.c
+++ b/src/hyantes.c
@@ -65,7 +65,7 @@ hs_config_t g_config = { NULL,0,0,0,500,0,0 }; // global configuration used by d
 #define SMOOTHING_FUN EXPONENTIAL
 #include "hyantes_run.c"

-#define PARETO(pot,dst,res,range) do{data_t tmp = POW2(dst); res=(pot)*(1./(1+(2/(range)*POW2(tmp))));} while (0) +#define PARETO(pot,dst,res,range) do{data_t tmpp = POW2(dst); res=(pot)*(1./(1+(2/(range)*POW2(tmpp))));} while (0)
 #define SMOOTHING_FUN PARETO
 #include "hyantes_run.c"

but still some big differences. (ra_pareto is the only test using this smoothing function.)

Reply via email to