[Avida-SVN] r3018 - development/source/cpu

brysonda at myxo.css.msu.edu brysonda at myxo.css.msu.edu
Wed Dec 10 07:27:07 PST 2008


Author: brysonda
Date: 2008-12-10 10:27:07 -0500 (Wed, 10 Dec 2008)
New Revision: 3018

Modified:
   development/source/cpu/cHardwareBase.cc
Log:
Divide Slip mutations did not properly guard against affecting consistency.   Reverting test ordering.

Modified: development/source/cpu/cHardwareBase.cc
===================================================================
--- development/source/cpu/cHardwareBase.cc	2008-12-10 03:39:31 UTC (rev 3017)
+++ development/source/cpu/cHardwareBase.cc	2008-12-10 15:27:07 UTC (rev 3018)
@@ -185,7 +185,9 @@
   
   m_organism->GetPhenotype().SetDivType(mut_multiplier);
   
-  
+  // Divide Slip Mutations - NOT COUNTED.
+  if (m_organism->TestDivideSlip(ctx)) doSlipMutation(ctx, offspring_genome);
+    
   // Divide Mutations
   if (m_organism->TestDivideMut(ctx) && totalMutations < maxmut) {
     const unsigned int mut_line = ctx.GetRandom().GetUInt(offspring_genome.GetSize());
@@ -212,13 +214,10 @@
     if (doUniformMutation(ctx, offspring_genome)) totalMutations++;
   }
   
-  // Divide Slip Mutations - NOT COUNTED.
-  if (m_organism->TestDivideSlip(ctx)) doSlipMutation(ctx, offspring_genome);
   
   
   
   
-  
   // Divide Mutations (per site)
   if (m_organism->GetDivMutProb() > 0 && totalMutations < maxmut) {
     int num_mut = ctx.GetRandom().GetRandBinomial(offspring_genome.GetSize(), 
@@ -294,10 +293,10 @@
   
   
   // Slip Mutations (per site) - NOT COUNTED
-  if (m_organism->GetDivSlipProb() > 0 && totalMutations < maxmut) {
+  if (m_organism->GetDivSlipProb() > 0) {
     int num_mut = ctx.GetRandom().GetRandBinomial(offspring_genome.GetSize(), 
                                                   m_organism->GetDivSlipProb() / mut_multiplier);
-    for (int i = 0; i < num_mut; i++) doUniformMutation(ctx, offspring_genome);
+    for (int i = 0; i < num_mut; i++) doSlipMutation(ctx, offspring_genome);
   }
   
   




More information about the Avida-cvs mailing list