[Avida-SVN] r2753 - in branches/interrupt/source: classification cpu main

beckma24 at myxo.css.msu.edu beckma24 at myxo.css.msu.edu
Fri Aug 15 10:04:34 PDT 2008


Author: beckma24
Date: 2008-08-15 13:04:34 -0400 (Fri, 15 Aug 2008)
New Revision: 2753

Modified:
   branches/interrupt/source/classification/cInjectGenotype.cc
   branches/interrupt/source/classification/cSpecies.cc
   branches/interrupt/source/cpu/cHardwareCPU.cc
   branches/interrupt/source/cpu/cHardwareExperimental.cc
   branches/interrupt/source/cpu/cHardwareGX.cc
   branches/interrupt/source/cpu/cHardwareSMT.cc
   branches/interrupt/source/cpu/cHardwareTransSMT.cc
   branches/interrupt/source/cpu/cHeadCPU.h
   branches/interrupt/source/main/cLandscape.cc
   branches/interrupt/source/main/cMxCodeArray.cc
   branches/interrupt/source/main/cPopulation.cc
Log:
Second to last commit for cGenome site protection

Modified: branches/interrupt/source/classification/cInjectGenotype.cc
===================================================================
--- branches/interrupt/source/classification/cInjectGenotype.cc	2008-08-15 16:14:39 UTC (rev 2752)
+++ branches/interrupt/source/classification/cInjectGenotype.cc	2008-08-15 17:04:34 UTC (rev 2753)
@@ -87,7 +87,7 @@
     int inst_op;
     fp >> inst_op;
     temp_inst.SetOp(static_cast<unsigned char>(inst_op));
-    genome[i] = temp_inst;
+    genome.SetInst(i, temp_inst, false);
     // @CAO add something here to load arguments for instructions.
   }
 

Modified: branches/interrupt/source/classification/cSpecies.cc
===================================================================
--- branches/interrupt/source/classification/cSpecies.cc	2008-08-15 16:14:39 UTC (rev 2752)
+++ branches/interrupt/source/classification/cSpecies.cc	2008-08-15 17:04:34 UTC (rev 2753)
@@ -130,8 +130,8 @@
     // If this position has changed, check if crossovers here are viable.
     if (test_genome[i] != genome[i]) {
       // Continue crossing over on each side...
-      cross_genome1[i] = test_genome[i];
-      cross_genome2[i] = genome[i];
+      cross_genome1.SetInst(i, test_genome[i], test_genome.IsProtected(i));
+      cross_genome2.SetInst(i, genome[i], genome.IsProtected(i));
    
       // Run each side, and determine viability...
       testcpu->TestGenome(ctx, test_info, cross_genome1);

Modified: branches/interrupt/source/cpu/cHardwareCPU.cc
===================================================================
--- branches/interrupt/source/cpu/cHardwareCPU.cc	2008-08-15 16:14:39 UTC (rev 2752)
+++ branches/interrupt/source/cpu/cHardwareCPU.cc	2008-08-15 17:04:34 UTC (rev 2753)
@@ -1294,7 +1294,7 @@
   m_memory.Resize(new_size);
 
   for (int i = old_size; i < new_size; i++) {
-    m_memory[i] = m_inst_set->GetRandomInst(ctx);
+    m_memory.SetInst(i, m_inst_set->GetRandomInst(ctx), false);
   }
   return true;
 }
@@ -2685,7 +2685,7 @@
   if (organism->GetCopyMutProb() > 0) { // Skip this if no mutations....
     for (int i = 0; i < m_memory.GetSize(); i++) {
       if (organism->TestCopyMut(ctx)) {
-        child_genome[i] = m_inst_set->GetRandomInst(ctx);
+        child_genome.SetInst(i, m_inst_set->GetRandomInst(ctx), false);
         //organism->GetPhenotype().IsMutated() = true;
       }
     }

Modified: branches/interrupt/source/cpu/cHardwareExperimental.cc
===================================================================
--- branches/interrupt/source/cpu/cHardwareExperimental.cc	2008-08-15 16:14:39 UTC (rev 2752)
+++ branches/interrupt/source/cpu/cHardwareExperimental.cc	2008-08-15 17:04:34 UTC (rev 2753)
@@ -866,7 +866,7 @@
   m_memory.Resize(new_size);
   
   for (int i = old_size; i < new_size; i++) {
-    m_memory[i] = m_inst_set->GetRandomInst(ctx);
+    m_memory.SetInst(i, m_inst_set->GetRandomInst(ctx), false);
   }
   return true;
 }
@@ -1808,7 +1808,7 @@
   // Perform Copy Mutations...
   if (organism->GetCopyMutProb() > 0) { // Skip this if no mutations....
     for (int i = 0; i < m_memory.GetSize(); i++) {
-      if (organism->TestCopyMut(ctx)) child_genome[i] = m_inst_set->GetRandomInst(ctx);
+      if (organism->TestCopyMut(ctx)) child_genome.SetInst(i, m_inst_set->GetRandomInst(ctx), false);
     }
   }
   

Modified: branches/interrupt/source/cpu/cHardwareGX.cc
===================================================================
--- branches/interrupt/source/cpu/cHardwareGX.cc	2008-08-15 16:14:39 UTC (rev 2752)
+++ branches/interrupt/source/cpu/cHardwareGX.cc	2008-08-15 17:04:34 UTC (rev 2753)
@@ -1129,7 +1129,7 @@
   GetMemory().Resize(new_size);
   
   for (int i = old_size; i < new_size; i++) {
-    GetMemory()[i] = m_inst_set->GetRandomInst(ctx);
+    GetMemory().SetInst(i, m_inst_set->GetRandomInst(ctx), false);
   }
   return true;
 }

Modified: branches/interrupt/source/cpu/cHardwareSMT.cc
===================================================================
--- branches/interrupt/source/cpu/cHardwareSMT.cc	2008-08-15 16:14:39 UTC (rev 2752)
+++ branches/interrupt/source/cpu/cHardwareSMT.cc	2008-08-15 17:04:34 UTC (rev 2753)
@@ -142,7 +142,7 @@
 	
   m_mem_array[0] = in_organism->GetGenome();  // Initialize memory...
   m_mem_array[0].Resize(m_mem_array[0].GetSize() + 1);
-  m_mem_array[0][m_mem_array[0].GetSize() - 1] = cInstruction();
+  m_mem_array[0].SetInst(m_mem_array[0].GetSize() - 1, cInstruction(), false);
   Reset();                            // Setup the rest of the hardware...
 }
 
@@ -848,7 +848,7 @@
     if( num_mut > 0 ){
       for (int i = 0; i < num_mut; i++) {
 				int site = ctx.GetRandom().GetUInt(injected_code.GetSize());
-				injected_code[site] = m_inst_set->GetRandomInst(ctx);
+				injected_code.SetInst(site, m_inst_set->GetRandomInst(ctx), false);
       }
     }
   }
@@ -899,7 +899,7 @@
   if (organism->GetParentMutProb() > 0) {
     for (int i = 0; i < m_mem_array[0].GetSize(); i++) {
       if (organism->TestParentMut(ctx)) {
-				m_mem_array[0][i] = m_inst_set->GetRandomInst(ctx);
+				m_mem_array[0].SetInst(i, m_inst_set->GetRandomInst(ctx), false);
       }
     }
   }

Modified: branches/interrupt/source/cpu/cHardwareTransSMT.cc
===================================================================
--- branches/interrupt/source/cpu/cHardwareTransSMT.cc	2008-08-15 16:14:39 UTC (rev 2752)
+++ branches/interrupt/source/cpu/cHardwareTransSMT.cc	2008-08-15 17:04:34 UTC (rev 2753)
@@ -141,7 +141,7 @@
 	
   m_mem_array[0] = in_organism->GetGenome();  // Initialize memory...
   m_mem_array[0].Resize(m_mem_array[0].GetSize() + 1);
-  m_mem_array[0][m_mem_array[0].GetSize() - 1] = cInstruction();
+  m_mem_array[0].SetInst(m_mem_array[0].GetSize() - 1, cInstruction(), false);
   Reset();                            // Setup the rest of the hardware...
 }
 
@@ -851,7 +851,7 @@
     if( num_mut > 0 ){
       for (int i = 0; i < num_mut; i++) {
 				int site = ctx.GetRandom().GetUInt(injected_code.GetSize());
-				injected_code[site] = m_inst_set->GetRandomInst(ctx);
+				injected_code.SetInst(site, m_inst_set->GetRandomInst(ctx), false);
       }
     }
   }
@@ -902,7 +902,7 @@
   if (organism->GetParentMutProb() > 0) {
     for (int i = 0; i < m_mem_array[0].GetSize(); i++) {
       if (organism->TestParentMut(ctx)) {
-				m_mem_array[0][i] = m_inst_set->GetRandomInst(ctx);
+				m_mem_array[0].SetInst(i, m_inst_set->GetRandomInst(ctx), false);
       }
     }
   }

Modified: branches/interrupt/source/cpu/cHeadCPU.h
===================================================================
--- branches/interrupt/source/cpu/cHeadCPU.h	2008-08-15 16:14:39 UTC (rev 2752)
+++ branches/interrupt/source/cpu/cHeadCPU.h	2008-08-15 17:04:34 UTC (rev 2753)
@@ -91,7 +91,7 @@
   inline const cInstruction& GetInst(int offset) const { return GetMemory()[m_position + offset]; }
   inline cInstruction GetNextInst() const;
 
-  inline void SetInst(const cInstruction& value) { GetMemory()[m_position] = value; }
+  inline void SetInst(const cInstruction& value) { GetMemory().SetInst(m_position, value, false); }
   inline void InsertInst(const cInstruction& inst) { GetMemory().Insert(m_position, inst); }
   inline void RemoveInst() { GetMemory().Remove(m_position); }
 

Modified: branches/interrupt/source/main/cLandscape.cc
===================================================================
--- branches/interrupt/source/main/cLandscape.cc	2008-08-15 16:14:39 UTC (rev 2752)
+++ branches/interrupt/source/main/cLandscape.cc	2008-08-15 17:04:34 UTC (rev 2753)
@@ -565,11 +565,11 @@
       if (cur_inst == new_inst) { i--; continue; }
       
       // Make the change, and test it!
-      mod_genome[line_num] = new_inst;
+      mod_genome.SetInst(line_num, new_inst, false);
       ProcessGenome(ctx, testcpu, mod_genome);
     }
     
-    mod_genome[line_num] = cur_inst;
+    mod_genome.SetInst(line_num, cur_inst, false);
   }
   
   delete testcpu;
@@ -605,7 +605,7 @@
         continue;
       }
       
-      mod_genome[ mut_lines[mut_num] ] = new_inst;
+      mod_genome.SetInst(mut_lines[mut_num], new_inst, false);
     }
     
     // And test it!
@@ -615,7 +615,7 @@
     
     // And reset the genome.
     for (mut_num = 0; mut_num < distance; mut_num++) {
-      mod_genome[ mut_lines[mut_num] ] = base_genome[ mut_lines[mut_num] ];
+      mod_genome.SetInst(mut_lines[mut_num], base_genome[ mut_lines[mut_num] ], base_genome.IsProtected(mut_lines[mut_num]));
     }
   }
   
@@ -803,13 +803,13 @@
 double cLandscape::TestMutPair(cAvidaContext& ctx, cTestCPU* testcpu, cGenome& mod_genome, int line1, int line2,
                                const cInstruction& mut1, const cInstruction& mut2)
 {
-  mod_genome[line1] = mut1;
-  mod_genome[line2] = mut2;
+  mod_genome.SetInst(line1, mut1, false);
+  mod_genome.SetInst(line2, mut2, false);
   testcpu->TestGenome(ctx, test_info, mod_genome);
   double combo_fitness = test_info.GetColonyFitness() / base_fitness;
   
-  mod_genome[line1] = base_genome[line1];
-  mod_genome[line2] = base_genome[line2];
+  mod_genome.SetInst(line1, base_genome[line1], base_genome.IsProtected(line1));
+  mod_genome.SetInst(line2, base_genome[line2], base_genome.IsProtected(line2));
   
   double mut1_fitness = fitness_chart(line1, mut1.GetOp()) / base_fitness;
   double mut2_fitness = fitness_chart(line2, mut2.GetOp()) / base_fitness;

Modified: branches/interrupt/source/main/cMxCodeArray.cc
===================================================================
--- branches/interrupt/source/main/cMxCodeArray.cc	2008-08-15 16:14:39 UTC (rev 2752)
+++ branches/interrupt/source/main/cMxCodeArray.cc	2008-08-15 17:04:34 UTC (rev 2753)
@@ -276,7 +276,7 @@
   other_code = cGenome(size);
 
   for (int i = 0; i < size; i++) {
-    other_code[i] = data[i];
+    other_code.SetInst(i, data[i], false);
   }
 }
 

Modified: branches/interrupt/source/main/cPopulation.cc
===================================================================
--- branches/interrupt/source/main/cPopulation.cc	2008-08-15 16:14:39 UTC (rev 2752)
+++ branches/interrupt/source/main/cPopulation.cc	2008-08-15 17:04:34 UTC (rev 2753)
@@ -1386,7 +1386,7 @@
     if(m_world->GetConfig().GERMLINE_COPY_MUT.Get() > 0.0) {
       for(int i=0; i<next_germ.GetSize(); ++i) {
         if(m_world->GetRandom().P(m_world->GetConfig().GERMLINE_COPY_MUT.Get())) {
-          next_germ[i] = instset.GetRandomInst(ctx);
+          next_germ.SetInst(i, instset.GetRandomInst(ctx), false);
         }
       }
     }
@@ -1431,7 +1431,7 @@
     if(m_world->GetConfig().GERMLINE_COPY_MUT.Get() > 0.0) {
       for(int i=0; i<new_genome.GetSize(); ++i) {
         if(m_world->GetRandom().P(m_world->GetConfig().GERMLINE_COPY_MUT.Get())) {
-          new_genome[i] = instset.GetRandomInst(ctx);
+          new_genome.SetInst(i, instset.GetRandomInst(ctx), false);
         }
       }
     }




More information about the Avida-cvs mailing list