[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