[Avida-SVN] r1516 - in development: source/main tests/demes_clique_repl/expected/data tests/demes_germline/expected/data tests/demes_grid_repl/expected/data tests/demes_hex_repl/expected/data tests/demes_torus_repl/expected/data

brysonda at myxo.css.msu.edu brysonda at myxo.css.msu.edu
Wed May 2 11:00:18 PDT 2007


Author: brysonda
Date: 2007-05-02 14:00:18 -0400 (Wed, 02 May 2007)
New Revision: 1516

Modified:
   development/source/main/cStats.cc
   development/tests/demes_clique_repl/expected/data/stats.dat
   development/tests/demes_germline/expected/data/stats.dat
   development/tests/demes_grid_repl/expected/data/stats.dat
   development/tests/demes_hex_repl/expected/data/stats.dat
   development/tests/demes_torus_repl/expected/data/stats.dat
Log:
Fix failing deme tests.  Cause was floating point round off error exposed due to Linux/Mac differences in floating point specs.  Flushes output values below specified error threshold to zero.

Modified: development/source/main/cStats.cc
===================================================================
--- development/source/main/cStats.cc	2007-05-02 02:13:20 UTC (rev 1515)
+++ development/source/main/cStats.cc	2007-05-02 18:00:18 UTC (rev 1516)
@@ -329,10 +329,16 @@
   assert(sum_fitness.Average() >= 0.0);
   assert(dom_fitness >= 0);
 
-  if (sum_fitness.Average() == 0.0 || dom_fitness == 0.0) {
+  
+  // Note: When average fitness and dominant fitness are close in value (i.e. should be identical)
+  //       floating point rounding error can cause output variances.  To mitigate this, threshold
+  //       caps off values that differ by less than it, flushing the effective output value to zero.
+  const double ave_fitness = sum_fitness.Average();
+  const double threshold = 1.0e-14;
+  if (ave_fitness == 0.0 || dom_fitness == 0.0 || fabs(ave_fitness - dom_fitness) < threshold) {
     energy = 0.0;
   } else  {
-    energy = Log(dom_fitness / sum_fitness.Average());
+    energy = Log(dom_fitness / ave_fitness);
   }
 }
 

Modified: development/tests/demes_clique_repl/expected/data/stats.dat
===================================================================
--- development/tests/demes_clique_repl/expected/data/stats.dat	2007-05-02 02:13:20 UTC (rev 1515)
+++ development/tests/demes_clique_repl/expected/data/stats.dat	2007-05-02 18:00:18 UTC (rev 1516)
@@ -15,7 +15,7 @@
 
 0 0.000000 0.097500 0.562358 0.102587 0.826353 1 0.000000 0.000000 0 0 0 
 10 0 0.562358 0.562358 0.826353 0.826353 0 0 0 0 0 0 
-20 2.44249e-15 0.56231 0.562358 0.826245 0.826353 0 1.66246 0 0 0 0 
+20 0 0.56231 0.562358 0.826245 0.826353 0 1.66246 0 0 0 0 
 30 0.0112117 0.562277 0.562358 0.826168 0.826353 0 3.04105 0 0 0 0 
 40 0.00834928 0.562358 0.562358 0.826353 0.826353 -190 2.83844 0 0 0 0 
 50 0.0243085 0.562358 0.562358 0.826353 0.826353 1 2.87929 0 0 0 0 

Modified: development/tests/demes_germline/expected/data/stats.dat
===================================================================
--- development/tests/demes_germline/expected/data/stats.dat	2007-05-02 02:13:20 UTC (rev 1515)
+++ development/tests/demes_germline/expected/data/stats.dat	2007-05-02 18:00:18 UTC (rev 1516)
@@ -15,7 +15,7 @@
 
 0 0.000000 0.097500 0.562358 0.102587 0.826353 1 0.000000 0.000000 0 0 0 
 10 0 0.562358 0.562358 0.826353 0.826353 0 0 0 0 0 0 
-20 2.44249e-15 0.562405 0.562358 0.826462 0.826353 0 1.7334 0 0 0 0 
+20 0 0.562405 0.562358 0.826462 0.826353 0 1.7334 0 0 0 0 
 30 0.0093872 0.562374 0.562358 0.82639 0.826353 0 3.29336 0 0 0 0 
 40 0 0.562358 0.562358 0.826353 0.826353 -217 1.68364 0 0 0 0 
 50 0 0.562358 0.562358 0.826353 0.826353 0 1.68364 0 0 0 0 

Modified: development/tests/demes_grid_repl/expected/data/stats.dat
===================================================================
--- development/tests/demes_grid_repl/expected/data/stats.dat	2007-05-02 02:13:20 UTC (rev 1515)
+++ development/tests/demes_grid_repl/expected/data/stats.dat	2007-05-02 18:00:18 UTC (rev 1516)
@@ -15,7 +15,7 @@
 
 0 0.000000 0.097500 0.562358 0.102587 0.826353 1 0.000000 0.000000 0 0 0 
 10 0 0.562358 0.562358 0.826353 0.826353 0 0 0 0 0 0 
-20 2.44249e-15 0.562405 0.562358 0.826462 0.826353 0 1.7334 0 0 0 0 
+20 0 0.562405 0.562358 0.826462 0.826353 0 1.7334 0 0 0 0 
 30 0.0093872 0.562374 0.562358 0.82639 0.826353 0 3.29336 0 0 0 0 
 40 0.0176158 0.562548 0.562358 0.826788 0.826353 -215 2.62128 0 0 0 0 
 50 0.034041 0.562544 0.562358 0.826779 0.826353 1 2.67998 0 0 0 0 

Modified: development/tests/demes_hex_repl/expected/data/stats.dat
===================================================================
--- development/tests/demes_hex_repl/expected/data/stats.dat	2007-05-02 02:13:20 UTC (rev 1515)
+++ development/tests/demes_hex_repl/expected/data/stats.dat	2007-05-02 18:00:18 UTC (rev 1516)
@@ -15,7 +15,7 @@
 
 0 0.000000 0.097500 0.562358 0.102587 0.826353 1 0.000000 0.000000 0 0 0 
 10 0 0.562358 0.562358 0.826353 0.826353 0 0 0 0 0 0 
-20 2.44249e-15 0.562405 0.562358 0.826462 0.826353 0 1.7334 0 0 0 0 
+20 0 0.562405 0.562358 0.826462 0.826353 0 1.7334 0 0 0 0 
 30 0.0093872 0.562422 0.562358 0.8265 0.826353 0 3.27633 0 0 0 0 
 40 0.00751309 0.562389 0.562358 0.826426 0.826353 -217 2.64264 0 0 0 0 
 50 0.00751309 0.562389 0.562358 0.826426 0.826353 0 2.64264 0 0 0 0 

Modified: development/tests/demes_torus_repl/expected/data/stats.dat
===================================================================
--- development/tests/demes_torus_repl/expected/data/stats.dat	2007-05-02 02:13:20 UTC (rev 1515)
+++ development/tests/demes_torus_repl/expected/data/stats.dat	2007-05-02 18:00:18 UTC (rev 1516)
@@ -15,7 +15,7 @@
 
 0 0.000000 0.097500 0.562358 0.102587 0.826353 1 0.000000 0.000000 0 0 0 
 10 0 0.562358 0.562358 0.826353 0.826353 0 0 0 0 0 0 
-20 2.44249e-15 0.562294 0.562358 0.826209 0.826353 0 1.66677 0 0 0 0 
+20 0 0.562294 0.562358 0.826209 0.826353 0 1.66677 0 0 0 0 
 30 0.0142025 0.562309 0.562358 0.826243 0.826353 0 3.07983 0 0 0 0 
 40 0.0188194 0.562421 0.562358 0.826498 0.826353 -204 3.07702 0 0 0 0 
 50 0.0309456 0.562513 0.562358 0.826708 0.826353 0 3.12679 0 0 0 0 




More information about the Avida-cvs mailing list