[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