[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