[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