[Avida-SVN] r1617 - in development/source: actions drivers main targets/avida-viewer

brysonda at myxo.css.msu.edu brysonda at myxo.css.msu.edu
Sat May 26 14:56:18 PDT 2007


Author: brysonda
Date: 2007-05-26 17:56:18 -0400 (Sat, 26 May 2007)
New Revision: 1617

Modified:
   development/source/actions/PrintActions.cc
   development/source/drivers/cDefaultRunDriver.cc
   development/source/main/cOrganism.h
   development/source/main/cPhenotype.cc
   development/source/main/cPhenotype.h
   development/source/main/cPopulation.cc
   development/source/main/cStats.cc
   development/source/main/cStats.h
   development/source/targets/avida-viewer/cSymbolUtil.cc
   development/source/targets/avida-viewer/cZoomScreen.cc
Log:
Rework tracking of the number of extant parasites.

Modified: development/source/actions/PrintActions.cc
===================================================================
--- development/source/actions/PrintActions.cc	2007-05-26 21:16:49 UTC (rev 1616)
+++ development/source/actions/PrintActions.cc	2007-05-26 21:56:18 UTC (rev 1617)
@@ -81,7 +81,7 @@
 STATS_OUT_FILE(PrintTimeData,               time.dat            );
 STATS_OUT_FILE(PrintMutationRateData,       mutation_rates.dat  );
 STATS_OUT_FILE(PrintDivideMutData,          divide_mut.dat      );
-STATS_OUT_FILE(PrintDominantParaData,       parasite.dat        );
+STATS_OUT_FILE(PrintParasiteData,           parasite.dat        );
 STATS_OUT_FILE(PrintInstructionData,        instruction.dat     );
 STATS_OUT_FILE(PrintGenotypeMap,            genotype_map.m      );
 STATS_OUT_FILE(PrintMarketData,             market.dat          );
@@ -2311,7 +2311,7 @@
   action_lib->Register<cActionPrintTimeData>("PrintTimeData");
   action_lib->Register<cActionPrintMutationRateData>("PrintMutationRateData");
   action_lib->Register<cActionPrintDivideMutData>("PrintDivideMutData");
-  action_lib->Register<cActionPrintDominantParaData>("PrintDominantParaData");
+  action_lib->Register<cActionPrintParasiteData>("PrintParasiteData");
   action_lib->Register<cActionPrintInstructionData>("PrintInstructionData");
   action_lib->Register<cActionPrintGenotypeMap>("PrintGenotypeMap");
   action_lib->Register<cActionPrintMarketData>("PrintMarketData");
@@ -2386,7 +2386,6 @@
   action_lib->Register<cActionPrintTimeData>("print_time_data");
   action_lib->Register<cActionPrintMutationRateData>("print_mutation_rate_data");
   action_lib->Register<cActionPrintDivideMutData>("print_divide_mut_data");
-  action_lib->Register<cActionPrintDominantParaData>("print_dom_parasite_data");
   action_lib->Register<cActionPrintInstructionData>("print_instruction_data");
   action_lib->Register<cActionPrintGenotypeMap>("print_genotype_map");
   action_lib->Register<cActionPrintMarketData>("print_market_data");

Modified: development/source/drivers/cDefaultRunDriver.cc
===================================================================
--- development/source/drivers/cDefaultRunDriver.cc	2007-05-26 21:16:49 UTC (rev 1616)
+++ development/source/drivers/cDefaultRunDriver.cc	2007-05-26 21:56:18 UTC (rev 1617)
@@ -121,7 +121,8 @@
         << "Gen: " << setw(9) << setprecision(7) << stats.SumGeneration().Average() << "  "
         << "Fit: " << setw(9) << setprecision(7) << stats.GetAveFitness() << "  "
         << "Orgs: " << setw(6) << population.GetNumOrganisms() << "  "
-        << "Thrd: " << stats.GetNumThreads()
+        << "Thrd: " << setw(6) << stats.GetNumThreads() << "  "
+        << "Para: " << stats.GetNumParasites()
         << endl;
     }
     

Modified: development/source/main/cOrganism.h
===================================================================
--- development/source/main/cOrganism.h	2007-05-26 21:16:49 UTC (rev 1616)
+++ development/source/main/cOrganism.h	2007-05-26 21:56:18 UTC (rev 1617)
@@ -228,7 +228,7 @@
   bool InjectHost(const cCodeLabel& in_label, const cGenome& genome);
   void AddParasite(cInjectGenotype* cur) { m_parasites.Push(cur); }
   cInjectGenotype& GetParasite(int x) { return *m_parasites[x]; }
-  int GetNumParasites() { return m_parasites.GetSize(); }
+  int GetNumParasites() const { return m_parasites.GetSize(); }
   void ClearParasites() { m_parasites.Resize(0); }
 		      
 

Modified: development/source/main/cPhenotype.cc
===================================================================
--- development/source/main/cPhenotype.cc	2007-05-26 21:16:49 UTC (rev 1616)
+++ development/source/main/cPhenotype.cc	2007-05-26 21:56:18 UTC (rev 1617)
@@ -175,7 +175,6 @@
 
   // Setup flags...
   is_injected   = false;
-  is_parasite   = false;
   is_donor_cur  = false;
   is_donor_last = parent_phenotype.is_donor_last;
   is_donor_rand = false;
@@ -297,7 +296,6 @@
 
   // Setup flags...
   is_injected   = true;
-  is_parasite   = false;
   is_donor_last = false;
   is_donor_cur  = false;
   is_donor_rand = false;
@@ -425,7 +423,6 @@
 
   // Leave flags alone...
   (void) is_injected;
-  (void) is_parasite;
   is_donor_last = is_donor_cur;
   is_donor_cur = false;
   is_donor_rand_last = is_donor_rand;
@@ -563,7 +560,6 @@
 
   // Leave flags alone...
   (void) is_injected;
-  (void) is_parasite;
   is_donor_last = is_donor_cur;
   is_donor_cur = false;
   is_donor_rand_last = is_donor_rand;
@@ -692,7 +688,6 @@
 
   // Setup flags...
   is_injected   = false;
-  is_parasite   = false;
   is_donor_last = clone_phenotype.is_donor_last;
   is_donor_cur  = clone_phenotype.is_donor_cur;
   is_receiver = false;
@@ -875,7 +870,6 @@
   fp << life_fitness        << " ";
 
   fp << is_injected         << " ";
-  fp << is_parasite         << " ";
   fp << is_donor_last       << " ";
   fp << is_donor_cur        << " ";
   fp << is_donor_rand_last       << " ";
@@ -985,7 +979,6 @@
   fp >> life_fitness;
 
   fp >> is_injected;
-  fp >> is_parasite;
   fp >> is_donor_last;
   fp >> is_donor_cur;
   fp >> is_donor_rand_last;

Modified: development/source/main/cPhenotype.h
===================================================================
--- development/source/main/cPhenotype.h	2007-05-26 21:16:49 UTC (rev 1616)
+++ development/source/main/cPhenotype.h	2007-05-26 21:56:18 UTC (rev 1617)
@@ -152,7 +152,6 @@
   bool to_die;		 // Has organism has triggered something fatal?
   bool to_delete;        // Should this organism be deleted when finished?
   bool is_injected;      // Was this organism injected into the population?
-  bool is_parasite;      // Has this organism ever executed outside code?
   bool is_donor_cur;     // Has this organism attempted to donate merit?  
   bool is_donor_last;    // Did this organism's parent attempt to donate merit? 
   bool is_donor_rand;    // Has this organism attempted a random donation?
@@ -319,7 +318,6 @@
 
 
   bool IsInjected() const { assert(initialized == true); return is_injected; }
-  bool IsParasite() const { assert(initialized == true); return is_parasite; }
   bool IsDonorCur() const { assert(initialized == true); return is_donor_cur; }
   bool IsDonorLast() const { assert(initialized == true); return is_donor_last; }
   bool IsDonorRand() const { assert(initialized == true); return is_donor_rand; }
@@ -423,7 +421,6 @@
   void IncDonates()   { assert(initialized == true); cur_num_donates++; }
   void IncSenseCount(const int i) { assert(initialized == true); cur_sense_count[i]++; }  
   bool& IsInjected() { assert(initialized == true); return is_injected; }
-  bool& IsParasite() { assert(initialized == true); return is_parasite; }
   bool& IsModifier() { assert(initialized == true); return is_modifier; }
   bool& IsModified() { assert(initialized == true); return is_modified; }
   bool& IsFertile()  { assert(initialized == true); return is_fertile; }

Modified: development/source/main/cPopulation.cc
===================================================================
--- development/source/main/cPopulation.cc	2007-05-26 21:16:49 UTC (rev 1616)
+++ development/source/main/cPopulation.cc	2007-05-26 21:56:18 UTC (rev 1617)
@@ -1705,8 +1705,8 @@
     }
     
     // Increment the counts for all qualities the organism has...
+    num_parasites += organism->GetNumParasites();
     if (phenotype.ParentTrue()) num_breed_true++;
-    if (phenotype.IsParasite()) num_parasites++;
     if (phenotype.GetNumDivides() == 0) num_no_birth++;
     if (phenotype.IsMultiThread()) num_multi_thread++;
     else num_single_thread++;

Modified: development/source/main/cStats.cc
===================================================================
--- development/source/main/cStats.cc	2007-05-26 21:16:49 UTC (rev 1616)
+++ development/source/main/cStats.cc	2007-05-26 21:56:18 UTC (rev 1617)
@@ -627,7 +627,7 @@
   df.Endl();
 }
 
-void cStats::PrintDominantParaData(const cString& filename)
+void cStats::PrintParasiteData(const cString& filename)
 {
   cDataFile& df = m_world->GetDataFile(filename);
 
@@ -635,6 +635,7 @@
   df.WriteTimeStamp();
 
   df.Write(m_update, "Update");
+  df.Write(num_parasites, "Number of Extant Parasites");
   df.Write(dom_inj_size, "Size of Dominant Parasite Genotype");
   df.Write(dom_inj_abundance, "Abundance of Dominant Parasite Genotype");
   df.Write(dom_inj_genotype_id, "Genotype ID of Dominant Parasite Genotype");
@@ -689,7 +690,6 @@
   df.Write(num_deaths,             "number of deaths in this update");
   df.Write(num_breed_true,         "number of breed true");
   df.Write(num_breed_true_creatures, "number of breed true organisms?");
-  //df.Write(num_parasites,            "number of parasites");
   df.Write(num_no_birth_creatures,   "number of no-birth organisms");
   df.Write(num_single_thread_creatures, "number of single-threaded organisms");
   df.Write(num_multi_thread_creatures, "number of multi-threaded organisms");

Modified: development/source/main/cStats.h
===================================================================
--- development/source/main/cStats.h	2007-05-26 21:16:49 UTC (rev 1616)
+++ development/source/main/cStats.h	2007-05-26 21:56:18 UTC (rev 1617)
@@ -586,7 +586,7 @@
   void PrintErrorData(const cString& filename);
   void PrintVarianceData(const cString& filename);
   void PrintDominantData(const cString& filename);
-  void PrintDominantParaData(const cString& filename);
+  void PrintParasiteData(const cString& filename);
   void PrintStatsData(const cString& filename);
   void PrintCountData(const cString& filename);
   void PrintTotalsData(const cString& filename);

Modified: development/source/targets/avida-viewer/cSymbolUtil.cc
===================================================================
--- development/source/targets/avida-viewer/cSymbolUtil.cc	2007-05-26 21:16:49 UTC (rev 1616)
+++ development/source/targets/avida-viewer/cSymbolUtil.cc	2007-05-26 21:56:18 UTC (rev 1617)
@@ -88,7 +88,7 @@
   if (cell.IsOccupied() == false) return ' ';
   const cOrganism & organism = *(cell.GetOrganism());
 
-  if (organism.GetPhenotype().IsParasite() == true) return '*';
+  if (organism.GetNumParasites()) return '*';
   return '-';
 }
 

Modified: development/source/targets/avida-viewer/cZoomScreen.cc
===================================================================
--- development/source/targets/avida-viewer/cZoomScreen.cc	2007-05-26 21:16:49 UTC (rev 1616)
+++ development/source/targets/avida-viewer/cZoomScreen.cc	2007-05-26 21:56:18 UTC (rev 1617)
@@ -408,7 +408,8 @@
       info.GetActiveCell()->IsOccupied() == false) return;
   
   cGenotype* genotype = info.GetActiveGenotype();
-  cPhenotype& phenotype = info.GetActiveCell()->GetOrganism()->GetPhenotype();
+  cOrganism* organism = info.GetActiveCell()->GetOrganism();
+  cPhenotype& phenotype = organism->GetPhenotype();
   
   SetBoldColor(COLOR_CYAN);
   
@@ -454,7 +455,7 @@
   else SetColor(COLOR_CYAN);
   Print(CPU_FLAGS_Y + 3, CPU_FLAGS_X + 1, "Injected");
   
-  if (phenotype.IsParasite()) SetBoldColor(COLOR_CYAN);
+  if (organism->GetNumParasites()) SetBoldColor(COLOR_CYAN);
   else SetColor(COLOR_CYAN);
   Print(CPU_FLAGS_Y + 4, CPU_FLAGS_X + 1, "Parasite");
   
@@ -467,12 +468,13 @@
   Print(CPU_FLAGS_Y + 6, CPU_FLAGS_X + 1, "Modified");
   
   SetColor(COLOR_WHITE);
+
+//  @DMB - This needs to be reworked for current parasite implementation
+//  if (info.GetPauseLevel() && info.GetActiveCell() && phenotype.IsParasite()) {
+//    if (parasite_zoom == true) Print(17, 12, "[X] Host Code    ");
+//    else Print(17, 12, "[X] Parasite Code");
+//  }
   
-  if (info.GetPauseLevel() && info.GetActiveCell() && phenotype.IsParasite()) {
-    if (parasite_zoom == true) Print(17, 12, "[X] Host Code    ");
-    else Print(17, 12, "[X] Parasite Code");
-  }
-  
   // Place the task information onto the screen.
   SetColor(COLOR_CYAN);
   




More information about the Avida-cvs mailing list