[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