[Avida-SVN] r2741 - in branches/interrupt/source: actions analyze cpu main

beckma24 at myxo.css.msu.edu beckma24 at myxo.css.msu.edu
Tue Aug 5 08:38:08 PDT 2008


Author: beckma24
Date: 2008-08-05 11:38:07 -0400 (Tue, 05 Aug 2008)
New Revision: 2741

Modified:
   branches/interrupt/source/actions/PrintActions.cc
   branches/interrupt/source/analyze/cAnalyze.cc
   branches/interrupt/source/analyze/cAnalyzeGenotype.cc
   branches/interrupt/source/analyze/cMutationalNeighborhood.cc
   branches/interrupt/source/cpu/cCPUMemory.cc
   branches/interrupt/source/main/cGenome.cc
   branches/interrupt/source/main/cGenome.h
   branches/interrupt/source/main/cLandscape.cc
Log:
first part of code to protect sites in genome

Modified: branches/interrupt/source/actions/PrintActions.cc
===================================================================
--- branches/interrupt/source/actions/PrintActions.cc	2008-08-01 13:33:27 UTC (rev 2740)
+++ branches/interrupt/source/actions/PrintActions.cc	2008-08-05 15:38:07 UTC (rev 2741)
@@ -2045,7 +2045,7 @@
       if (mode == -1 && count == total) break;
       
       if ( i < con_length )
-        con_genome[i].SetOp(mode);
+        con_genome.SetOp(i, mode);
       
       // Print all needed files.
       if (i < m_lines_saved) {

Modified: branches/interrupt/source/analyze/cAnalyze.cc
===================================================================
--- branches/interrupt/source/analyze/cAnalyze.cc	2008-08-01 13:33:27 UTC (rev 2740)
+++ branches/interrupt/source/analyze/cAnalyze.cc	2008-08-05 15:38:07 UTC (rev 2741)
@@ -512,7 +512,7 @@
     
     // Test fitness of each mutant.
     for (int mod_inst = 0; mod_inst < num_insts; mod_inst++) {
-      mod_genome[line_no].SetOp(mod_inst);
+      mod_genome.SetOp(line_no, mod_inst);
       cAnalyzeGenotype test_genotype(m_world, mod_genome, inst_set);
       test_genotype.Recalculate(m_ctx);
       // Ajust fitness ...
@@ -561,7 +561,7 @@
     entropy += this_entropy;
     
     // Reset the mod_genome back to the original sequence.
-    mod_genome[line_no].SetOp(cur_inst);
+    mod_genome.SetOp(line_no, cur_inst);
   }
   return entropy;
 }
@@ -612,8 +612,8 @@
       // Test fitness of each mutant.
       for (int mod_inst_1 = 0; mod_inst_1 < num_insts; mod_inst_1++){
         for (int mod_inst_2 = 0; mod_inst_2 < num_insts; mod_inst_2++) {
-          mod_genome[line_1].SetOp(mod_inst_1);
-          mod_genome[line_2].SetOp(mod_inst_2);
+          mod_genome.SetOp(line_1, mod_inst_1);
+          mod_genome.SetOp(line_2, mod_inst_2);
           cAnalyzeGenotype test_genotype(m_world, mod_genome, inst_set);
           test_genotype.Recalculate(m_ctx);
           // Adjust fitness ...
@@ -677,8 +677,8 @@
       pairwiseEntropy[line_1][line_2] = this_entropy;
       
       // Reset the mod_genome back to the original sequence.
-      mod_genome[line_1].SetOp(cur_inst_1);
-      mod_genome[line_2].SetOp(cur_inst_2);
+      mod_genome.SetOp(line_1, cur_inst_1);
+      mod_genome.SetOp(line_2, cur_inst_2);
       
     }  
   }  //End Loops
@@ -710,7 +710,7 @@
     
     // Test fitness of each mutant.
     for (int mod_inst = 0; mod_inst < num_insts; mod_inst++) {
-      mod_genome[line_no].SetOp(mod_inst);
+      mod_genome.SetOp(line_no, mod_inst);
       cAnalyzeGenotype test_genotype(m_world, mod_genome, inst_set);
       test_genotype.Recalculate(m_ctx);
       test_fitness[mod_inst] = test_genotype.GetFitness();
@@ -770,7 +770,7 @@
     entropy += this_entropy;
     
     // Reset the mod_genome back to the base_genome.
-    mod_genome[line_no].SetOp(cur_inst);
+    mod_genome.SetOp(line_no, cur_inst);
   }
   return entropy;
 }
@@ -807,7 +807,7 @@
     
     // Test fitness of each mutant.
     for (int mod_inst = 0; mod_inst < num_insts; mod_inst++) {
-      genotype1_mod_genome[line_no].SetOp(mod_inst);
+      genotype1_mod_genome.SetOp(line_no, mod_inst);
       cAnalyzeGenotype test_genotype(m_world, genotype1_mod_genome, inst_set);
       test_genotype.Recalculate(m_ctx);
       // Ajust fitness ...
@@ -855,7 +855,7 @@
     genotype1_info[line_no] = 1 - this_entropy;
     
     // Reset the mod_genome back to the original sequence.
-    genotype1_mod_genome[line_no].SetOp(cur_inst);
+    genotype1_mod_genome.SetOp(line_no, cur_inst);
   }
   
   genotype2->Recalculate(m_ctx);
@@ -876,7 +876,7 @@
     
     // Test fitness of each mutant.
     for (int mod_inst = 0; mod_inst < num_insts; mod_inst++) {
-      genotype2_mod_genome[line_no].SetOp(mod_inst);
+      genotype2_mod_genome.SetOp(line_no, mod_inst);
       cAnalyzeGenotype test_genotype(m_world, genotype2_mod_genome, inst_set);
       test_genotype.Recalculate(m_ctx);
       // Ajust fitness ...
@@ -928,7 +928,7 @@
     } // else increasing is 0, do nothing
     
     // Reset the mod_genome back to the original sequence.
-    genotype2_mod_genome[line_no].SetOp(cur_inst);
+    genotype2_mod_genome.SetOp(line_no, cur_inst);
   }
   
   
@@ -3039,7 +3039,7 @@
       for (int line = 0; line < length_genome; ++ line) {
         int given_inst = given_genome[line].GetOp();
         mod_genome = base_genome;
-        mod_genome[line].SetOp(given_inst);
+        mod_genome.SetOp(line, given_inst);
         cAnalyzeGenotype test_genotype(m_world, mod_genome, inst_set);
         test_genotype.Recalculate(m_ctx, &test_info);
         
@@ -3074,7 +3074,7 @@
       int cur_inst = base_genome[line].GetOp();
       
       for (int mod_inst = 0; mod_inst < num_insts; ++ mod_inst) {
-        mod_genome[line].SetOp(mod_inst);
+        mod_genome.SetOp(line, mod_inst);
         cAnalyzeGenotype test_genotype(m_world, mod_genome, inst_set);
         test_genotype.Recalculate(m_ctx, &test_info);
         if (test_genotype.GetFitness() >= base_fitness) {
@@ -3085,7 +3085,7 @@
         }
       }
       
-      mod_genome[line].SetOp(cur_inst);
+      mod_genome.SetOp(line, cur_inst);
     }
     
     /////////////////////////////////////////
@@ -3485,7 +3485,7 @@
       int num_neutral = 0;
       
       for (int mod_inst = 0; mod_inst < num_insts; ++ mod_inst) {
-        mod_genome[line].SetOp(mod_inst);
+        mod_genome.SetOp(line, mod_inst);
         cAnalyzeGenotype test_genotype(m_world, mod_genome, inst_set);
         test_genotype.Recalculate(m_ctx, &test_info);
         if (test_genotype.GetFitness() >= base_fitness) {
@@ -3501,7 +3501,7 @@
       }
       
       
-      mod_genome[line].SetOp(cur_inst);
+      mod_genome.SetOp(line, cur_inst);
     }
     
     point_mut.insert(make_pair(genotype->GetID(), prob));
@@ -4468,7 +4468,7 @@
       }
       
       // Reset the mod_genome back to the original sequence.
-      mod_genome[line_num].SetOp(cur_inst);
+      mod_genome.SetOp(line_num, cur_inst);
     }
     
     tArray<int> ko_pair_effect(ko_effect);
@@ -4503,8 +4503,8 @@
           }	
           
           // Reset the mod_genome back to the original sequence.
-          mod_genome[line1].SetOp(cur_inst1);
-          mod_genome[line2].SetOp(cur_inst2);
+          mod_genome.SetOp(line1, cur_inst1);
+          mod_genome.SetOp(line2, cur_inst2);
         }
       }
     }    
@@ -4861,7 +4861,7 @@
       fp << endl;
       
       // Reset the mod_genome back to the original sequence.
-      mod_genome[line_num].SetOp(cur_inst);
+      mod_genome.SetOp(line_num, cur_inst);
     }
     
     
@@ -5101,7 +5101,7 @@
         }
         
         // Reset the mod_genome back to the original sequence.
-        mod_genome[line_num].SetOp(cur_inst);
+        mod_genome.SetOp(line_num, cur_inst);
       } // end of genotype-phenotype mapping for a single organism
       
       for (int i = 0; i < num_cols; i++) if (num_inst[i] != 0) total_task++;
@@ -5321,7 +5321,7 @@
       }
       
       // Reset the mod_genome back to the original sequence.
-      mod_genome[line_num].SetOp(cur_inst);
+      mod_genome.SetOp(line_num, cur_inst);
     } // end of genotype-phenotype mapping for a single organism
     
     
@@ -5538,7 +5538,7 @@
           }
         }
         else {
-          mod_genome[line_num].SetOp(mod_inst);
+          mod_genome.SetOp(line_num, mod_inst);
           cAnalyzeGenotype test_genotype(m_world, mod_genome, inst_set);
           test_genotype.Recalculate(m_ctx);
           const double test_fitness = test_genotype.GetFitness() / base_fitness;
@@ -5619,7 +5619,7 @@
       fp << endl;
       
       // Reset the mod_genome back to the original sequence.
-      mod_genome[line_num].SetOp(cur_inst);
+      mod_genome.SetOp(line_num, cur_inst);
     }
     
     
@@ -6893,7 +6893,7 @@
     for (int i = 0; i < size; i++) {
       if (prev_inst[i] == -1) num_static++;
       else {
-        test_genome[i].SetOp(prev_inst[i]);
+        test_genome.SetOp(i, prev_inst[i]);
         testcpu->TestGenome(m_ctx, test_info, test_genome);
         const double cur_fitness = test_info.GetGenotypeFitness();
         if (cur_fitness > base_fitness) num_detrimental++;
@@ -7008,7 +7008,7 @@
       
       // Test fitness of each mutant.
       for (int mod_inst = 0; mod_inst < num_insts; mod_inst++) {
-        mod_genome[line_num].SetOp(mod_inst);
+        mod_genome.SetOp(line_num, mod_inst);
         cAnalyzeGenotype test_genotype(m_world, mod_genome, inst_set);
         test_genotype.Recalculate(m_ctx);
         test_fitness[mod_inst] = test_genotype.GetFitness();
@@ -7070,7 +7070,7 @@
       lineage_fp << complexity << " ";
       
       // Reset the mod_genome back to the original sequence.
-      mod_genome[line_num].SetOp(cur_inst);
+      mod_genome.SetOp(line_num, cur_inst);
     }
     
     m_world->GetDataFileManager().Remove(filename);
@@ -7201,8 +7201,8 @@
         for (int mod_inst1 = 0; mod_inst1 < num_insts; mod_inst1++) {
           for (int mod_inst2 = 0; mod_inst2 < num_insts; mod_inst2++) {
             // modify mod_genome at two sites
-            mod_genome[site1].SetOp(mod_inst1);
-            mod_genome[site2].SetOp(mod_inst2);
+            mod_genome.SetOp(site1, mod_inst1);
+            mod_genome.SetOp(site2, mod_inst2);
             // analyze mod_genome
             cAnalyzeGenotype test_genotype(m_world, mod_genome, inst_set);
             test_genotype.Recalculate(m_ctx);
@@ -7214,8 +7214,8 @@
           fit_land_fp.Endl();
         }   
         // Reset the mod_genome back to the original sequence.
-        mod_genome[site1].SetOp(curr_inst1);
-        mod_genome[site2].SetOp(curr_inst2);
+        mod_genome.SetOp(site1, curr_inst1);
+        mod_genome.SetOp(site2, curr_inst2);
         
         // close file
         m_world->GetDataFileManager().Remove(fl_filename);
@@ -7390,7 +7390,7 @@
       
       // recalculate fitness of each mutant.
       for (int mod_inst = 0; mod_inst < num_insts; mod_inst++) {
-        mod_genome[line_num].SetOp(mod_inst);
+        mod_genome.SetOp(line_num, mod_inst);
         cAnalyzeGenotype test_genotype(m_world, mod_genome, inst_set);
         test_genotype.Recalculate(m_ctx);
         test_fitness[mod_inst] = test_genotype.GetFitness();
@@ -7486,7 +7486,7 @@
       entropy_ss_bits[line_num] = entropy_bits;
       
       // Reset the mod_genome back to the original sequence.
-      mod_genome[line_num].SetOp(cur_inst);
+      mod_genome.SetOp(line_num, cur_inst);
     }
     
     /*
@@ -7528,8 +7528,8 @@
           for (int mod_inst1 = 0; mod_inst1 < num_insts; mod_inst1++) {
             for (int mod_inst2 = 0; mod_inst2 < num_insts; mod_inst2++) {
               // modify mod_genome at two sites
-              mod_genome[line_num1].SetOp(mod_inst1);
-              mod_genome[line_num2].SetOp(mod_inst2);
+              mod_genome.SetOp(line_num1, mod_inst1);
+              mod_genome.SetOp(line_num2, mod_inst2);
               // analyze mod_genome
               cAnalyzeGenotype test_genotype(m_world, mod_genome, inst_set);
               test_genotype.Recalculate(m_ctx);
@@ -7712,8 +7712,8 @@
         fp_2s.Endl();
                     
         // Reset the mod_genome back to the original sequence.
-        mod_genome[line_num1].SetOp(cur_inst1);
-        mod_genome[line_num2].SetOp(cur_inst2);
+        mod_genome.SetOp(line_num1, cur_inst1);
+        mod_genome.SetOp(line_num2, cur_inst2);
         
       }// end line 2
     }// end line 1

Modified: branches/interrupt/source/analyze/cAnalyzeGenotype.cc
===================================================================
--- branches/interrupt/source/analyze/cAnalyzeGenotype.cc	2008-08-01 13:33:27 UTC (rev 2740)
+++ branches/interrupt/source/analyze/cAnalyzeGenotype.cc	2008-08-05 15:38:07 UTC (rev 2741)
@@ -269,7 +269,7 @@
     }
     
     // Reset the mod_genome back to the original sequence.
-    mod_genome[line_num].SetOp(cur_inst);
+    mod_genome.SetOp(line_num, cur_inst);
   }
   
   // Only continue from here if we are looking at all pairs of knockouts
@@ -328,8 +328,8 @@
       }	
       
       // Reset the mod_genome back to the original sequence.
-      mod_genome[line1].SetOp(cur_inst1);
-      mod_genome[line2].SetOp(cur_inst2);
+      mod_genome.SetOp(line1, cur_inst1);
+      mod_genome.SetOp(line2, cur_inst2);
     }
   }
   

Modified: branches/interrupt/source/analyze/cMutationalNeighborhood.cc
===================================================================
--- branches/interrupt/source/analyze/cMutationalNeighborhood.cc	2008-08-01 13:33:27 UTC (rev 2740)
+++ branches/interrupt/source/analyze/cMutationalNeighborhood.cc	2008-08-05 15:38:07 UTC (rev 2741)
@@ -222,7 +222,7 @@
   for (int inst_num = 0; inst_num < inst_size; inst_num++) {
     if (cur_inst == inst_num) continue;
     
-    mod_genome[cur_site].SetOp(inst_num);
+    mod_genome.SetOp(cur_site, inst_num);
     m_fitness_point[cur_site][inst_num] = ProcessOneStepGenome(ctx, testcpu, test_info, mod_genome, odata, cur_site);
 
     ProcessTwoStepPoint(ctx, testcpu, test_info, cur_site, mod_genome);
@@ -239,7 +239,7 @@
   
   // Loop through all instructions...
   for (int inst_num = 0; inst_num < inst_size; inst_num++) {
-    mod_genome[cur_site].SetOp(inst_num);
+    mod_genome.SetOp(cur_site, inst_num);
     m_fitness_insert[cur_site][inst_num] = ProcessOneStepGenome(ctx, testcpu, test_info, mod_genome, odata, cur_site);
     
     ProcessTwoStepInsert(ctx, testcpu, test_info, cur_site, mod_genome);
@@ -334,11 +334,11 @@
     for (int inst_num = 0; inst_num < inst_size; inst_num++) {
       if (cur_inst == inst_num) continue;
       
-      mod_genome[line_num].SetOp(inst_num);
+      mod_genome.SetOp(line_num, inst_num);
       ProcessTwoStepGenome(ctx, testcpu, test_info, mod_genome, tdata, sPendFit(m_fitness_point, line_num, inst_num), cur);
     }
     
-    mod_genome[line_num].SetOp(cur_inst);
+    mod_genome.SetOp(line_num, cur_inst);
   }
 }
 
@@ -356,7 +356,7 @@
     mod_genome.Insert(line_num, cInstruction(0));
     
     for (int inst_num = 0; inst_num < inst_size; inst_num++) {
-      mod_genome[cur_site].SetOp(inst_num);
+      mod_genome.SetOp(cur_site, inst_num);
       ProcessTwoStepGenome(ctx, testcpu, test_info, mod_genome, tdata, sPendFit(m_fitness_insert, line_num - 1, inst_num), cur);
     }
     mod_genome.Remove(line_num);
@@ -399,11 +399,11 @@
     for (int inst_num = 0; inst_num < inst_size; inst_num++) {
       if (cur_inst == inst_num) continue;
       
-      mod_genome[line_num].SetOp(inst_num);
+      mod_genome.SetOp(line_num, inst_num);
       ProcessTwoStepGenome(ctx, testcpu, test_info, mod_genome, tdata, sPendFit(m_fitness_point, actual, inst_num), cur);
     }
     
-    mod_genome[line_num].SetOp(cur_inst);
+    mod_genome.SetOp(line_num, cur_inst);
   }
 }
 
@@ -443,11 +443,11 @@
     for (int inst_num = 0; inst_num < inst_size; inst_num++) {
       if (cur_inst == inst_num) continue;
       
-      mod_genome[line_num].SetOp(inst_num);
+      mod_genome.SetOp(line_num, inst_num);
       ProcessTwoStepGenome(ctx, testcpu, test_info, mod_genome, tdata, sPendFit(m_fitness_point, actual, inst_num), cur);
     }
     
-    mod_genome[line_num].SetOp(cur_inst);
+    mod_genome.SetOp(line_num, cur_inst);
   }
 }
 

Modified: branches/interrupt/source/cpu/cCPUMemory.cc
===================================================================
--- branches/interrupt/source/cpu/cCPUMemory.cc	2008-08-01 13:33:27 UTC (rev 2740)
+++ branches/interrupt/source/cpu/cCPUMemory.cc	2008-08-05 15:38:07 UTC (rev 2741)
@@ -55,6 +55,7 @@
     const int new_array_min = new_size + MEMORY_INCREASE_MINIMUM;
 		if (new_array_min > new_array_size) new_array_size = new_array_min;
     genome.Resize(new_array_size);
+		protected_sites.Resize(new_array_size);
     flag_array.Resize(new_array_size);
   }
   
@@ -91,6 +92,7 @@
   // Fill in the new information...
   for (int i = 0; i < active_size; i++) {
     genome[i] = other_memory.genome[i];
+		protected_sites[i] = other_memory.IsProtected(i);
     flag_array[i] = other_memory.flag_array[i];
   }
 }
@@ -103,6 +105,7 @@
   // Fill in the new information...
   for (int i = 0; i < active_size; i++) {
     genome[i] = other_genome[i];
+		protected_sites[i] = other_genome.IsProtected(i);
     flag_array[i] = 0;
   }
 }

Modified: branches/interrupt/source/main/cGenome.cc
===================================================================
--- branches/interrupt/source/main/cGenome.cc	2008-08-01 13:33:27 UTC (rev 2740)
+++ branches/interrupt/source/main/cGenome.cc	2008-08-05 15:38:07 UTC (rev 2741)
@@ -30,14 +30,17 @@
 
 
 cGenome::cGenome(int _size)
-  : genome(_size), active_size(_size)
+  : genome(_size), protected_sites(_size), active_size(_size)
 {
 }
 
 cGenome::cGenome(const cGenome & in_genome)
-  : genome(in_genome.GetSize()), active_size(in_genome.GetSize())
+  : genome(in_genome.GetSize()), protected_sites(in_genome.GetSize()), active_size(in_genome.GetSize())
 {
-  for (int i = 0; i < active_size; i++)  genome[i] = in_genome[i];
+  for (int i = 0; i < active_size; i++) {
+		genome[i] = in_genome[i];
+		protected_sites[i] = in_genome.IsProtected(i);
+	}
 }
 
 cGenome::cGenome(const cString & in_string)
@@ -47,6 +50,9 @@
 
   active_size = tmp_string.GetSize();
   genome.ResizeClear(active_size);
+  protected_sites.ResizeClear(active_size);
+	//protected_sites.SetAll(false);
+
   for (int i = 0; i < active_size; i++) {
     genome[i].SetSymbol(tmp_string[i]);
   }
@@ -64,6 +70,7 @@
 {
   for(cInstruction* i=begin; i!=end; ++i,++active_size) {
     genome.Push(*i);
+		protected_sites.Push(false);
   }
 }
 
@@ -78,11 +85,13 @@
   // If we need to resize, do so...
   active_size = other_genome.GetSize();
   genome.ResizeClear(active_size);
+	protected_sites.ResizeClear(active_size);
 
   // Now that both code arrays are the same size, copy the other one over.
 
   for (int i = 0; i < active_size; i++) {
     genome[i] = other_genome[i];
+		protected_sites[i] = other_genome.IsProtected(i);
   }
 }
 
@@ -99,7 +108,19 @@
   return true;
 }
 
+void cGenome::SetInst(int index, const cInstruction& inst, bool protect_site) {
+	if(!protected_sites[index]) {
+		genome[index] = inst;
+		protected_sites[index] = protect_site;
+	}
+}
 
+void cGenome::SetOp(int index, const int op) {
+	if(!protected_sites[index]) {
+		genome[index].SetOp(op);
+	}	
+}
+
 void cGenome::Copy(int to, int from)
 {
   assert(to   >= 0   && to   < active_size);

Modified: branches/interrupt/source/main/cGenome.h
===================================================================
--- branches/interrupt/source/main/cGenome.h	2008-08-01 13:33:27 UTC (rev 2740)
+++ branches/interrupt/source/main/cGenome.h	2008-08-05 15:38:07 UTC (rev 2741)
@@ -47,6 +47,7 @@
 {
 protected:
   tArray<cInstruction> genome;
+	tArray<bool> protected_sites;
   int active_size;
 
 public:
@@ -68,6 +69,11 @@
   cInstruction& operator[](int index) { assert(index >= 0 && index < active_size);  return genome[index]; }
   const cInstruction& operator[](int index) const { assert(index >= 0 && index < active_size);  return genome[index]; }
 
+	bool IsProtected(int index) const { assert(index >= 0 && index < active_size); return protected_sites[index]; }
+	
+	void SetInst(int index, const cInstruction& inst, bool protect_site);
+	void SetOp(int index, const int op);
+	
   virtual void Copy(int to, int from);
 
   bool OK() const;

Modified: branches/interrupt/source/main/cLandscape.cc
===================================================================
--- branches/interrupt/source/main/cLandscape.cc	2008-08-01 13:33:27 UTC (rev 2740)
+++ branches/interrupt/source/main/cLandscape.cc	2008-08-05 15:38:07 UTC (rev 2741)
@@ -186,7 +186,7 @@
     for (int inst_num = 0; inst_num < inst_size; inst_num++) {
       if (cur_inst == inst_num) continue;
       
-      mod_genome[line_num].SetOp(inst_num);
+      mod_genome.SetOp(line_num, inst_num);
       if (cur_distance <= 1) {
         ProcessGenome(ctx, testcpu, mod_genome);
         if (test_info.GetColonyFitness() >= neut_min) site_count[line_num]++;
@@ -195,7 +195,7 @@
       }
     }
     
-    mod_genome[line_num].SetOp(cur_inst);
+    mod_genome.SetOp(line_num, cur_inst);
   }
   
 }
@@ -227,14 +227,14 @@
       if (cur_inst == inst_num) {
         fitness = base_fitness;
       } else {
-        mod_genome[line_num].SetOp(inst_num);
+        mod_genome.SetOp(line_num, inst_num);
         fitness = ProcessGenome(ctx, testcpu, mod_genome);
       }
       df.Write(fitness, "Mutation Fitness (instruction = column_number - 2)");
     }
 
     df.Endl();
-    mod_genome[line_num].SetOp(cur_inst);
+    mod_genome.SetOp(line_num, cur_inst);
   }
   
   delete testcpu;
@@ -646,12 +646,12 @@
         continue;
       }
       
-      mod_genome[line_num].SetOp(inst_num);
+      mod_genome.SetOp(line_num, inst_num);
       ProcessGenome(ctx, testcpu, mod_genome);
       fitness_chart(line_num, inst_num) = test_info.GetColonyFitness();
     }
     
-    mod_genome[line_num].SetOp(cur_inst);
+    mod_genome.SetOp(line_num, cur_inst);
   }
 }
 




More information about the Avida-cvs mailing list