[Avida-SVN] r2326 - in development/source: actions main

dknoester at myxo.css.msu.edu dknoester at myxo.css.msu.edu
Thu Feb 14 07:33:24 PST 2008


Author: dknoester
Date: 2008-02-14 10:33:24 -0500 (Thu, 14 Feb 2008)
New Revision: 2326

Modified:
   development/source/actions/PrintActions.cc
   development/source/main/cPopulation.cc
   development/source/main/cStats.cc
   development/source/main/cStats.h
Log:
Adding a print action for the number of deme replications and removing a todo from cPopulation (it was done).



Modified: development/source/actions/PrintActions.cc
===================================================================
--- development/source/actions/PrintActions.cc	2008-02-13 19:30:53 UTC (rev 2325)
+++ development/source/actions/PrintActions.cc	2008-02-14 15:33:24 UTC (rev 2326)
@@ -91,10 +91,10 @@
 STATS_OUT_FILE(PrintMarketData,             market.dat          );
 STATS_OUT_FILE(PrintSenseData,              sense.dat           );
 STATS_OUT_FILE(PrintSenseExeData,           sense_exe.dat       );
-STATS_OUT_FILE(PrintSleepData,              sleep.dat          );
-STATS_OUT_FILE(PrintCompetitionData,        competition.dat         );
+STATS_OUT_FILE(PrintSleepData,              sleep.dat           );
+STATS_OUT_FILE(PrintCompetitionData,        competition.dat     );
+STATS_OUT_FILE(PrintDemeReplicationData,    deme_repl.dat       );
 
-
 #define POP_OUT_FILE(METHOD, DEFAULT)                                                     /*  1 */ \
 class cAction ## METHOD : public cAction {                                                /*  2 */ \
 private:                                                                                  /*  3 */ \
@@ -2644,7 +2644,9 @@
   action_lib->Register<cActionPrintDemeSpacialEnergy>("PrintDemeSpacialEnergyStats");
   action_lib->Register<cActionPrintDemeSpacialSleep>("PrintDemeSpacialSleepStats");
   action_lib->Register<cActionPrintDemeResources>("PrintDemeResourceStats");
-
+  action_lib->Register<cActionPrintDemeReplicationData>("PrintDemeReplicationData");
+  
+  
   //Coalescence Clade Actions
   action_lib->Register<cActionPrintCCladeCounts>("PrintCCladeCounts");
   action_lib->Register<cActionPrintCCladeFitnessHistogram>("PrintCCladeFitnessHistogram");

Modified: development/source/main/cPopulation.cc
===================================================================
--- development/source/main/cPopulation.cc	2008-02-13 19:30:53 UTC (rev 2325)
+++ development/source/main/cPopulation.cc	2008-02-14 15:33:24 UTC (rev 2326)
@@ -1145,7 +1145,6 @@
 so desired).
 
 @refactor Replace manual mutation with strategy pattern.
- at todo Add insertion and deletion mutations.
 */
 void cPopulation::ReplaceDeme(cDeme& source_deme, cDeme& target_deme) 
 {

Modified: development/source/main/cStats.cc
===================================================================
--- development/source/main/cStats.cc	2008-02-13 19:30:53 UTC (rev 2325)
+++ development/source/main/cStats.cc	2008-02-14 15:33:24 UTC (rev 2326)
@@ -123,6 +123,7 @@
   , m_spec_total(0)
   , m_spec_num(0)
   , m_spec_waste(0)
+  , m_deme_num_repls(0)
 {
   const cEnvironment& env = m_world->GetEnvironment();
   const int num_tasks = env.GetNumTasks();
@@ -1138,3 +1139,27 @@
   }
   df.Endl();  
 }
+
+
+void cStats::DemePreReplication(cDeme& source_deme, cDeme& target_deme)
+{
+  ++m_deme_num_repls;
+}
+
+
+/*! Print statistics related to deme replication.  Currently only prints the
+number of deme replications since the last time PrintDemeReplicationData was
+invoked.
+*/
+void cStats::PrintDemeReplicationData(const cString& filename)
+{
+  cDataFile& df = m_world->GetDataFile(filename);
+  
+  df.WriteComment("Avida deme replication data");
+  df.WriteTimeStamp();
+  df.Write(m_update, "Update");
+  df.Write(m_deme_num_repls, "Number of deme replications.");
+  df.Endl();
+  
+  m_deme_num_repls = 0;
+}

Modified: development/source/main/cStats.h
===================================================================
--- development/source/main/cStats.h	2008-02-13 19:30:53 UTC (rev 2325)
+++ development/source/main/cStats.h	2008-02-14 15:33:24 UTC (rev 2326)
@@ -677,9 +677,17 @@
   
   // -------- Deme replication support --------
 public:
-  void DemePreReplication(cDeme& source_deme, cDeme& target_deme) { }
+  //! Called immediately prior to deme replacement.
+  void DemePreReplication(cDeme& source_deme, cDeme& target_deme);
+  //! Called immediately after deme replacement.
   void DemePostReplication(cDeme& source_deme, cDeme& target_deme) { }
+  //! Called immediately prior to germline replacement.
   void GermlineReplication(cGermline& source_germline, cGermline& target_germline) { }
+  //! Print statistics about deme replication.
+  void PrintDemeReplicationData(const cString& filename);
+  
+protected:
+  int m_deme_num_repls; //!< Number of deme replications since last PrintDemeReplicationData.
 };
 
 




More information about the Avida-cvs mailing list