[Avida-SVN] r3262 - in branches/mabinmer/source: cpu main
mabinmer at myxo.css.msu.edu
mabinmer at myxo.css.msu.edu
Wed May 27 08:10:20 PDT 2009
Author: mabinmer
Date: 2009-05-27 11:10:20 -0400 (Wed, 27 May 2009)
New Revision: 3262
Modified:
branches/mabinmer/source/cpu/cHardwareCPU.cc
branches/mabinmer/source/cpu/cHardwareCPU.h
branches/mabinmer/source/cpu/cHardwareGX.cc
branches/mabinmer/source/cpu/cHardwareGX.h
branches/mabinmer/source/main/cAvidaConfig.h
branches/mabinmer/source/main/cPopulation.cc
branches/mabinmer/source/main/cStats.h
Log:
# Updated some of the kazi code
Modified: branches/mabinmer/source/cpu/cHardwareCPU.cc
===================================================================
--- branches/mabinmer/source/cpu/cHardwareCPU.cc 2009-05-27 14:05:55 UTC (rev 3261)
+++ branches/mabinmer/source/cpu/cHardwareCPU.cc 2009-05-27 15:10:20 UTC (rev 3262)
@@ -410,8 +410,19 @@
tInstLibEntry<tMethod>("spawn-deme", &cHardwareCPU::Inst_SpawnDeme, nInstFlag::STALL),
// Suicide
- tInstLibEntry<tMethod>("kazi", &cHardwareCPU::Inst_Kazi, nInstFlag::STALL),
+ tInstLibEntry<tMethod>("kazi_kill_all", &cHardwareCPU::Inst_Kazi_Kill_All, nInstFlag::STALL),
+ tInstLibEntry<tMethod>("kazi0", &cHardwareCPU::Inst_Kazi0, nInstFlag::STALL),
+ tInstLibEntry<tMethod>("kazi1", &cHardwareCPU::Inst_Kazi1, nInstFlag::STALL),
+ tInstLibEntry<tMethod>("kazi2", &cHardwareCPU::Inst_Kazi2, nInstFlag::STALL),
+ tInstLibEntry<tMethod>("kazi3", &cHardwareCPU::Inst_Kazi3, nInstFlag::STALL),
+ tInstLibEntry<tMethod>("kazi4", &cHardwareCPU::Inst_Kazi4, nInstFlag::STALL),
tInstLibEntry<tMethod>("kazi5", &cHardwareCPU::Inst_Kazi5, nInstFlag::STALL),
+ tInstLibEntry<tMethod>("kazi6", &cHardwareCPU::Inst_Kazi6, nInstFlag::STALL),
+ tInstLibEntry<tMethod>("kazi7", &cHardwareCPU::Inst_Kazi7, nInstFlag::STALL),
+ tInstLibEntry<tMethod>("kazi8", &cHardwareCPU::Inst_Kazi8, nInstFlag::STALL),
+ tInstLibEntry<tMethod>("kazi9", &cHardwareCPU::Inst_Kazi9, nInstFlag::STALL),
+ tInstLibEntry<tMethod>("kazi10", &cHardwareCPU::Inst_Kazi10, nInstFlag::STALL),
+ tInstLibEntry<tMethod>("kazi100", &cHardwareCPU::Inst_Kazi100, nInstFlag::STALL),
tInstLibEntry<tMethod>("die", &cHardwareCPU::Inst_Die, nInstFlag::STALL),
tInstLibEntry<tMethod>("suicide", &cHardwareCPU::Inst_Suicide, nInstFlag::STALL),
tInstLibEntry<tMethod>("relinquishEnergyToFutureDeme", &cHardwareCPU::Inst_RelinquishEnergyToFutureDeme, nInstFlag::STALL),
@@ -2943,21 +2954,55 @@
return true;
}
-bool cHardwareCPU::Inst_Kazi(cAvidaContext& ctx)
+bool cHardwareCPU::Inst_Kazi_Kill_All(cAvidaContext& ctx)
{
const int reg_used = FindModifiedRegister(REG_AX);
double percentProb = ((double) (GetRegister(reg_used) % 100)) / 100.0;
+ if ( ctx.GetRandom().P(percentProb) ) m_organism->Kaboom(-1);
+ return true;
+}
+
+
+bool cHardwareCPU::Inst_Kazi0(cAvidaContext& ctx)
+{
+ const int reg_used = FindModifiedRegister(REG_AX);
+ double percentProb = ((double) (GetRegister(reg_used) % 100)) / 100.0;
if ( ctx.GetRandom().P(percentProb) ) m_organism->Kaboom(0);
return true;
}
-
-bool cHardwareCPU::Inst_Sterilize(cAvidaContext& ctx)
+bool cHardwareCPU::Inst_Kazi1(cAvidaContext& ctx)
{
- m_organism->GetPhenotype().IsFertile() = false;
+ const int reg_used = FindModifiedRegister(REG_AX);
+ double percentProb = ((double) (GetRegister(reg_used) % 100)) / 100.0;
+ if ( ctx.GetRandom().P(percentProb) ) m_organism->Kaboom(1);
return true;
}
+bool cHardwareCPU::Inst_Kazi2(cAvidaContext& ctx)
+{
+ const int reg_used = FindModifiedRegister(REG_AX);
+ double percentProb = ((double) (GetRegister(reg_used) % 100)) / 100.0;
+ if ( ctx.GetRandom().P(percentProb) ) m_organism->Kaboom(2);
+ return true;
+}
+
+bool cHardwareCPU::Inst_Kazi3(cAvidaContext& ctx)
+{
+ const int reg_used = FindModifiedRegister(REG_AX);
+ double percentProb = ((double) (GetRegister(reg_used) % 100)) / 100.0;
+ if ( ctx.GetRandom().P(percentProb) ) m_organism->Kaboom(3);
+ return true;
+}
+
+bool cHardwareCPU::Inst_Kazi4(cAvidaContext& ctx)
+{
+ const int reg_used = FindModifiedRegister(REG_AX);
+ double percentProb = ((double) (GetRegister(reg_used) % 100)) / 100.0;
+ if ( ctx.GetRandom().P(percentProb) ) m_organism->Kaboom(4);
+ return true;
+}
+
bool cHardwareCPU::Inst_Kazi5(cAvidaContext& ctx)
{
const int reg_used = FindModifiedRegister(REG_AX);
@@ -2966,6 +3011,61 @@
return true;
}
+bool cHardwareCPU::Inst_Kazi6(cAvidaContext& ctx)
+{
+ const int reg_used = FindModifiedRegister(REG_AX);
+ double percentProb = ((double) (GetRegister(reg_used) % 100)) / 100.0;
+ if ( ctx.GetRandom().P(percentProb) ) m_organism->Kaboom(6);
+ return true;
+}
+
+bool cHardwareCPU::Inst_Kazi7(cAvidaContext& ctx)
+{
+ const int reg_used = FindModifiedRegister(REG_AX);
+ double percentProb = ((double) (GetRegister(reg_used) % 100)) / 100.0;
+ if ( ctx.GetRandom().P(percentProb) ) m_organism->Kaboom(7);
+ return true;
+}
+
+bool cHardwareCPU::Inst_Kazi8(cAvidaContext& ctx)
+{
+ const int reg_used = FindModifiedRegister(REG_AX);
+ double percentProb = ((double) (GetRegister(reg_used) % 100)) / 100.0;
+ if ( ctx.GetRandom().P(percentProb) ) m_organism->Kaboom(8);
+ return true;
+}
+
+bool cHardwareCPU::Inst_Kazi9(cAvidaContext& ctx)
+{
+ const int reg_used = FindModifiedRegister(REG_AX);
+ double percentProb = ((double) (GetRegister(reg_used) % 100)) / 100.0;
+ if ( ctx.GetRandom().P(percentProb) ) m_organism->Kaboom(9);
+ return true;
+}
+
+bool cHardwareCPU::Inst_Kazi10(cAvidaContext& ctx)
+{
+ const int reg_used = FindModifiedRegister(REG_AX);
+ double percentProb = ((double) (GetRegister(reg_used) % 100)) / 100.0;
+ if ( ctx.GetRandom().P(percentProb) ) m_organism->Kaboom(10);
+ return true;
+}
+
+bool cHardwareCPU::Inst_Kazi100(cAvidaContext& ctx)
+{
+ const int reg_used = FindModifiedRegister(REG_AX);
+ double percentProb = ((double) (GetRegister(reg_used) % 100)) / 100.0;
+ if ( ctx.GetRandom().P(percentProb) ) m_organism->Kaboom(100);
+ return true;
+}
+
+
+bool cHardwareCPU::Inst_Sterilize(cAvidaContext& ctx)
+{
+ m_organism->GetPhenotype().IsFertile() = false;
+ return true;
+}
+
bool cHardwareCPU::Inst_Die(cAvidaContext& ctx)
{
m_organism->Die();
Modified: branches/mabinmer/source/cpu/cHardwareCPU.h
===================================================================
--- branches/mabinmer/source/cpu/cHardwareCPU.h 2009-05-27 14:05:55 UTC (rev 3261)
+++ branches/mabinmer/source/cpu/cHardwareCPU.h 2009-05-27 15:10:20 UTC (rev 3262)
@@ -460,8 +460,19 @@
bool Inst_Sterilize(cAvidaContext& ctx);
bool Inst_SpawnDeme(cAvidaContext& ctx);
- bool Inst_Kazi(cAvidaContext& ctx);
+ bool Inst_Kazi_Kill_All(cAvidaContext& ctx);
+ bool Inst_Kazi0(cAvidaContext& ctx);
+ bool Inst_Kazi1(cAvidaContext& ctx);
+ bool Inst_Kazi2(cAvidaContext& ctx);
+ bool Inst_Kazi3(cAvidaContext& ctx);
+ bool Inst_Kazi4(cAvidaContext& ctx);
bool Inst_Kazi5(cAvidaContext& ctx);
+ bool Inst_Kazi6(cAvidaContext& ctx);
+ bool Inst_Kazi7(cAvidaContext& ctx);
+ bool Inst_Kazi8(cAvidaContext& ctx);
+ bool Inst_Kazi9(cAvidaContext& ctx);
+ bool Inst_Kazi10(cAvidaContext& ctx);
+ bool Inst_Kazi100(cAvidaContext& ctx);
bool Inst_Die(cAvidaContext& ctx);
bool Inst_Suicide(cAvidaContext& ctx);
bool Inst_RelinquishEnergyToFutureDeme(cAvidaContext& ctx);
Modified: branches/mabinmer/source/cpu/cHardwareGX.cc
===================================================================
--- branches/mabinmer/source/cpu/cHardwareGX.cc 2009-05-27 14:05:55 UTC (rev 3261)
+++ branches/mabinmer/source/cpu/cHardwareGX.cc 2009-05-27 15:10:20 UTC (rev 3262)
@@ -247,8 +247,19 @@
tInstLibEntry<tMethod>("spawn-deme", &cHardwareGX::Inst_SpawnDeme),
// Suicide
- tInstLibEntry<tMethod>("kazi", &cHardwareGX::Inst_Kazi),
+ tInstLibEntry<tMethod>("kazi0", &cHardwareGX::Inst_Kazi0),
+ tInstLibEntry<tMethod>("kazi1", &cHardwareGX::Inst_Kazi1),
+ tInstLibEntry<tMethod>("kazi2", &cHardwareGX::Inst_Kazi2),
+ tInstLibEntry<tMethod>("kazi3", &cHardwareGX::Inst_Kazi3),
+ tInstLibEntry<tMethod>("kazi4", &cHardwareGX::Inst_Kazi4),
tInstLibEntry<tMethod>("kazi5", &cHardwareGX::Inst_Kazi5),
+ tInstLibEntry<tMethod>("kazi6", &cHardwareGX::Inst_Kazi6),
+ tInstLibEntry<tMethod>("kazi7", &cHardwareGX::Inst_Kazi7),
+ tInstLibEntry<tMethod>("kazi8", &cHardwareGX::Inst_Kazi8),
+ tInstLibEntry<tMethod>("kazi9", &cHardwareGX::Inst_Kazi9),
+ tInstLibEntry<tMethod>("kazi10", &cHardwareGX::Inst_Kazi10),
+ tInstLibEntry<tMethod>("kazi100", &cHardwareGX::Inst_Kazi100),
+
tInstLibEntry<tMethod>("die", &cHardwareGX::Inst_Die),
// Placebo instructions
@@ -2125,7 +2136,7 @@
return true;
}
-bool cHardwareGX::Inst_Kazi(cAvidaContext& ctx)
+bool cHardwareGX::Inst_Kazi0(cAvidaContext& ctx)
{
const int reg_used = FindModifiedRegister(REG_AX);
double percentProb = ((double) (GetRegister(reg_used) % 100)) / 100.0;
@@ -2133,6 +2144,38 @@
return true;
}
+bool cHardwareGX::Inst_Kazi1(cAvidaContext& ctx)
+{
+ const int reg_used = FindModifiedRegister(REG_AX);
+ double percentProb = ((double) (GetRegister(reg_used) % 100)) / 100.0;
+ if ( ctx.GetRandom().P(percentProb) ) m_organism->Kaboom(1);
+ return true;
+}
+
+bool cHardwareGX::Inst_Kazi2(cAvidaContext& ctx)
+{
+ const int reg_used = FindModifiedRegister(REG_AX);
+ double percentProb = ((double) (GetRegister(reg_used) % 100)) / 100.0;
+ if ( ctx.GetRandom().P(percentProb) ) m_organism->Kaboom(2);
+ return true;
+}
+
+bool cHardwareGX::Inst_Kazi3(cAvidaContext& ctx)
+{
+ const int reg_used = FindModifiedRegister(REG_AX);
+ double percentProb = ((double) (GetRegister(reg_used) % 100)) / 100.0;
+ if ( ctx.GetRandom().P(percentProb) ) m_organism->Kaboom(3);
+ return true;
+}
+
+bool cHardwareGX::Inst_Kazi4(cAvidaContext& ctx)
+{
+ const int reg_used = FindModifiedRegister(REG_AX);
+ double percentProb = ((double) (GetRegister(reg_used) % 100)) / 100.0;
+ if ( ctx.GetRandom().P(percentProb) ) m_organism->Kaboom(4);
+ return true;
+}
+
bool cHardwareGX::Inst_Kazi5(cAvidaContext& ctx)
{
const int reg_used = FindModifiedRegister(REG_AX);
@@ -2141,6 +2184,55 @@
return true;
}
+bool cHardwareGX::Inst_Kazi6(cAvidaContext& ctx)
+{
+ const int reg_used = FindModifiedRegister(REG_AX);
+ double percentProb = ((double) (GetRegister(reg_used) % 100)) / 100.0;
+ if ( ctx.GetRandom().P(percentProb) ) m_organism->Kaboom(6);
+ return true;
+}
+
+bool cHardwareGX::Inst_Kazi7(cAvidaContext& ctx)
+{
+ const int reg_used = FindModifiedRegister(REG_AX);
+ double percentProb = ((double) (GetRegister(reg_used) % 100)) / 100.0;
+ if ( ctx.GetRandom().P(percentProb) ) m_organism->Kaboom(7);
+ return true;
+}
+
+bool cHardwareGX::Inst_Kazi8(cAvidaContext& ctx)
+{
+ const int reg_used = FindModifiedRegister(REG_AX);
+ double percentProb = ((double) (GetRegister(reg_used) % 100)) / 100.0;
+ if ( ctx.GetRandom().P(percentProb) ) m_organism->Kaboom(8);
+ return true;
+}
+
+bool cHardwareGX::Inst_Kazi9(cAvidaContext& ctx)
+{
+ const int reg_used = FindModifiedRegister(REG_AX);
+ double percentProb = ((double) (GetRegister(reg_used) % 100)) / 100.0;
+ if ( ctx.GetRandom().P(percentProb) ) m_organism->Kaboom(9);
+ return true;
+}
+
+bool cHardwareGX::Inst_Kazi10(cAvidaContext& ctx)
+{
+ const int reg_used = FindModifiedRegister(REG_AX);
+ double percentProb = ((double) (GetRegister(reg_used) % 100)) / 100.0;
+ if ( ctx.GetRandom().P(percentProb) ) m_organism->Kaboom(10);
+ return true;
+}
+
+bool cHardwareGX::Inst_Kazi100(cAvidaContext& ctx)
+{
+ const int reg_used = FindModifiedRegister(REG_AX);
+ double percentProb = ((double) (GetRegister(reg_used) % 100)) / 100.0;
+ if ( ctx.GetRandom().P(percentProb) ) m_organism->Kaboom(100);
+ return true;
+}
+
+
bool cHardwareGX::Inst_Die(cAvidaContext& ctx)
{
m_organism->Die();
Modified: branches/mabinmer/source/cpu/cHardwareGX.h
===================================================================
--- branches/mabinmer/source/cpu/cHardwareGX.h 2009-05-27 14:05:55 UTC (rev 3261)
+++ branches/mabinmer/source/cpu/cHardwareGX.h 2009-05-27 15:10:20 UTC (rev 3262)
@@ -496,8 +496,19 @@
bool Inst_Repro(cAvidaContext& ctx);
bool Inst_SpawnDeme(cAvidaContext& ctx);
- bool Inst_Kazi(cAvidaContext& ctx);
+ bool Inst_Kazi0(cAvidaContext& ctx);
+ bool Inst_Kazi1(cAvidaContext& ctx);
+ bool Inst_Kazi2(cAvidaContext& ctx);
+ bool Inst_Kazi3(cAvidaContext& ctx);
+ bool Inst_Kazi4(cAvidaContext& ctx);
bool Inst_Kazi5(cAvidaContext& ctx);
+ bool Inst_Kazi6(cAvidaContext& ctx);
+ bool Inst_Kazi7(cAvidaContext& ctx);
+ bool Inst_Kazi8(cAvidaContext& ctx);
+ bool Inst_Kazi9(cAvidaContext& ctx);
+ bool Inst_Kazi10(cAvidaContext& ctx);
+ bool Inst_Kazi100(cAvidaContext& ctx);
+
bool Inst_Die(cAvidaContext& ctx);
// I/O and Sensory
Modified: branches/mabinmer/source/main/cAvidaConfig.h
===================================================================
--- branches/mabinmer/source/main/cAvidaConfig.h 2009-05-27 14:05:55 UTC (rev 3261)
+++ branches/mabinmer/source/main/cAvidaConfig.h 2009-05-27 15:10:20 UTC (rev 3262)
@@ -383,6 +383,8 @@
CONFIG_ADD_GROUP(MUTATION_GROUP, "Mutations");
CONFIG_ADD_VAR(POINT_MUT_PROB, double, 0.0, "Mutation rate (per-location per update)");
+ CONFIG_ADD_VAR(KAZI_RADIUS, int, 0, "The radius within which an organism will kill other organisms when it explodes.");
+
CONFIG_ADD_VAR(COPY_MUT_PROB, double, 0.0075, "Mutation rate (per copy)");
CONFIG_ADD_VAR(COPY_INS_PROB, double, 0.0, "Insertion rate (per copy)");
CONFIG_ADD_VAR(COPY_DEL_PROB, double, 0.0, "Deletion rate (per copy)");
Modified: branches/mabinmer/source/main/cPopulation.cc
===================================================================
--- branches/mabinmer/source/main/cPopulation.cc 2009-05-27 14:05:55 UTC (rev 3261)
+++ branches/mabinmer/source/main/cPopulation.cc 2009-05-27 15:10:20 UTC (rev 3262)
@@ -774,7 +774,7 @@
cGenome genome = genotype->GetGenome();
int id = genotype->GetID();
- int radius = 2;
+ int radius = m_world->GetConfig().KAZI_RADIUS.Get();
int count = 0;
for (int i=-1*radius; i<=radius; i++) {
Modified: branches/mabinmer/source/main/cStats.h
===================================================================
--- branches/mabinmer/source/main/cStats.h 2009-05-27 14:05:55 UTC (rev 3261)
+++ branches/mabinmer/source/main/cStats.h 2009-05-27 15:10:20 UTC (rev 3262)
@@ -775,6 +775,8 @@
void PrintCellVisitsData(const cString& filename);
void PrintExtendedTimeData(const cString& filename);
void PrintNumOrgsKilledData(const cString& filename);
+ void PrintExplodeTotalData(const cString& filename);
+ void PrintExplodeSuccessesData(const cString& filename);
// deme predicate stats
void IncEventCount(int x, int y);
More information about the Avida-cvs
mailing list