[Avida-SVN] r3323 - in development/source: actions main
connel42 at myxo.css.msu.edu
connel42 at myxo.css.msu.edu
Wed Jun 17 13:03:21 PDT 2009
Author: connel42
Date: 2009-06-17 16:03:21 -0400 (Wed, 17 Jun 2009)
New Revision: 3323
Modified:
development/source/actions/PrintActions.cc
development/source/main/cStats.cc
development/source/main/cStats.h
Log:
Added task stats printing for treatable and untreatable demes
Modified: development/source/actions/PrintActions.cc
===================================================================
--- development/source/actions/PrintActions.cc 2009-06-17 16:45:45 UTC (rev 3322)
+++ development/source/actions/PrintActions.cc 2009-06-17 20:03:21 UTC (rev 3323)
@@ -110,7 +110,11 @@
STATS_OUT_FILE(PrintDemeNetworkData, deme_network.dat);
STATS_OUT_FILE(PrintDemeFoundersData, deme_founders.dat );
STATS_OUT_FILE(PrintPerDemeTasksData, per_deme_tasks.dat );
+STATS_OUT_FILE(PrintPerTreatableDemeTasksData, per_treatable_deme_tasks.dat );
+STATS_OUT_FILE(PrintPerUntreatableDemeTasksData, per_untreatable_deme_tasks.dat );
STATS_OUT_FILE(PrintPerDemeTasksExeData, per_deme_tasks_exe.dat );
+STATS_OUT_FILE(PrintPerTreatableDemeTasksExeData, per_treatable_deme_tasks_exe.dat );
+STATS_OUT_FILE(PrintPerUntreatableDemeTasksExeData, per_untreatable_deme_tasks_exe.dat );
STATS_OUT_FILE(PrintPerDemeReactionData, per_deme_reactions.dat );
STATS_OUT_FILE(PrintDemeTasksData, deme_tasks.dat );
STATS_OUT_FILE(PrintDemeTasksExeData, deme_tasks_exe.dat );
@@ -3038,7 +3042,11 @@
action_lib->Register<cActionPrintGermlineData>("PrintGermlineData");
action_lib->Register<cActionSaveDemeFounders>("SaveDemeFounders");
action_lib->Register<cActionPrintPerDemeTasksData>("PrintPerDemeTasksData");
+ action_lib->Register<cActionPrintPerDemeTasksData>("PrintPerTreatableDemeTasksData");
+ action_lib->Register<cActionPrintPerDemeTasksData>("PrintPerUntreatableDemeTasksData");
action_lib->Register<cActionPrintPerDemeTasksExeData>("PrintPerDemeTasksExeData");
+ action_lib->Register<cActionPrintPerTreatableDemeTasksExeData>("PrintPerTreatableDemeTasksExeData");
+ action_lib->Register<cActionPrintPerUntreatableDemeTasksExeData>("PrintPerUntreatableDemeTasksExeData");
action_lib->Register<cActionPrintPerDemeReactionData>("PrintPerDemeReactionData");
action_lib->Register<cActionPrintDemeTasksData>("PrintDemeTasksData");
action_lib->Register<cActionPrintDemeTasksExeData>("PrintDemeTasksExeData");
@@ -3050,7 +3058,6 @@
action_lib->Register<cActionPrintCurrentTaskCounts>("PrintCurrentTaskCounts");
action_lib->Register<cActionPrintPerDemeGenPerFounderData>("PrintPerDemeGenPerFounderData");
action_lib->Register<cActionPrintDemeMigrationSuicidePoints>("PrintDemeMigrationSuicidePoints");
-
//Coalescence Clade Actions
Modified: development/source/main/cStats.cc
===================================================================
--- development/source/main/cStats.cc 2009-06-17 16:45:45 UTC (rev 3322)
+++ development/source/main/cStats.cc 2009-06-17 20:03:21 UTC (rev 3323)
@@ -1750,6 +1750,53 @@
df.Endl();
}
+void cStats::PrintPerTreatableDemeTasksData(const cString& filename) {
+ cDataFile& df = m_world->GetDataFile(filename);
+ df.WriteComment("Avida treatable deme tasks data");
+ df.WriteTimeStamp();
+ df.WriteComment("First column gives the current update, next columns give the number");
+ df.WriteComment("of organisms that have the particular task as a component of their merit");
+ df.WriteComment("in a particular deme");
+
+ const int num_tasks = m_world->GetEnvironment().GetNumTasks();
+
+ df.Write(m_update, "Update");
+ for(int i=0; i<m_world->GetPopulation().GetNumDemes(); ++i) {
+ cDeme& deme = m_world->GetPopulation().GetDeme(i);
+
+ if(deme.isTreatable()) {
+ for(int j = 0; j < num_tasks; j++) {
+ df.Write( (deme.GetLastTaskExeCount()[j] > 0), cStringUtil::Stringf("%i.", i) + task_names[j] );
+ }
+ }
+ }
+ df.Endl();
+}
+
+
+void cStats::PrintPerUntreatableDemeTasksData(const cString& filename) {
+ cDataFile& df = m_world->GetDataFile(filename);
+ df.WriteComment("Avida untreatable deme tasks data");
+ df.WriteTimeStamp();
+ df.WriteComment("First column gives the current update, next columns give the number");
+ df.WriteComment("of organisms that have the particular task as a component of their merit");
+ df.WriteComment("in a particular deme");
+
+ const int num_tasks = m_world->GetEnvironment().GetNumTasks();
+
+ df.Write(m_update, "Update");
+ for(int i=0; i<m_world->GetPopulation().GetNumDemes(); ++i) {
+ cDeme& deme = m_world->GetPopulation().GetDeme(i);
+
+ if(!deme.isTreatable()) {
+ for(int j = 0; j < num_tasks; j++) {
+ df.Write( (deme.GetLastTaskExeCount()[j] > 0), cStringUtil::Stringf("%i.", i) + task_names[j] );
+ }
+ }
+ }
+ df.Endl();
+}
+
void cStats::PrintPerDemeTasksExeData(const cString& filename){
cDataFile& df = m_world->GetDataFile(filename);
df.WriteComment("Avida deme tasks exe data");
@@ -1770,6 +1817,54 @@
df.Endl();
}
+void cStats::PrintPerTreatableDemeTasksExeData(const cString& filename) {
+ cDataFile& df = m_world->GetDataFile(filename);
+ df.WriteComment("Avida treatable deme tasks exe data");
+ df.WriteTimeStamp();
+ df.WriteComment("First column gives the current update, next columns give the number");
+ df.WriteComment("of times a task has contributed to the merit of all organisms");
+ df.WriteComment("in a particular deme");
+
+ const int num_tasks = m_world->GetEnvironment().GetNumTasks();
+
+ df.Write(m_update, "Update");
+ for(int i=0; i<m_world->GetPopulation().GetNumDemes(); ++i) {
+ cDeme& deme = m_world->GetPopulation().GetDeme(i);
+
+ if(deme.isTreatable()) {
+ for(int j = 0; j < num_tasks; j++) {
+ df.Write( deme.GetLastTaskExeCount()[j], cStringUtil::Stringf("%i.", i) + task_names[j] );
+ }
+ }
+ }
+ df.Endl();
+}
+
+
+void cStats::PrintPerUntreatableDemeTasksExeData(const cString& filename) {
+ cDataFile& df = m_world->GetDataFile(filename);
+ df.WriteComment("Avida untreatable deme tasks exe data");
+ df.WriteTimeStamp();
+ df.WriteComment("First column gives the current update, next columns give the number");
+ df.WriteComment("of times a task has contributed to the merit of all organisms");
+ df.WriteComment("in a particular deme");
+
+ const int num_tasks = m_world->GetEnvironment().GetNumTasks();
+
+ df.Write(m_update, "Update");
+ for(int i=0; i<m_world->GetPopulation().GetNumDemes(); ++i) {
+ cDeme& deme = m_world->GetPopulation().GetDeme(i);
+
+ if(!deme.isTreatable()) {
+ for(int j = 0; j < num_tasks; j++) {
+ df.Write( deme.GetLastTaskExeCount()[j], cStringUtil::Stringf("%i.", i) + task_names[j] );
+ }
+ }
+ }
+ df.Endl();
+}
+
+
void cStats::PrintPerDemeReactionData(const cString& filename){
cDataFile& df = m_world->GetDataFile(filename);
df.WriteComment("Avida deme reactions data");
Modified: development/source/main/cStats.h
===================================================================
--- development/source/main/cStats.h 2009-06-17 16:45:45 UTC (rev 3322)
+++ development/source/main/cStats.h 2009-06-17 20:03:21 UTC (rev 3323)
@@ -850,7 +850,11 @@
void PrintDemeFoundersData(const cString& filename);
void PrintPerDemeTasksData(const cString& filename);
+ void PrintPerTreatableDemeTasksData(const cString& filename);
+ void PrintPerUntreatableDemeTasksData(const cString& filename);
void PrintPerDemeTasksExeData(const cString& filename);
+ void PrintPerTreatableDemeTasksExeData(const cString& filename);
+ void PrintPerUntreatableDemeTasksExeData(const cString& filename);
void PrintPerDemeReactionData(const cString& filename);
void PrintDemeTasksData(const cString& filename);
void PrintDemeTasksExeData(const cString& filename);
More information about the Avida-cvs
mailing list