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

connel42 at myxo.css.msu.edu connel42 at myxo.css.msu.edu
Fri Jun 19 10:45:46 PDT 2009


Author: connel42
Date: 2009-06-19 13:45:46 -0400 (Fri, 19 Jun 2009)
New Revision: 3325

Modified:
   development/source/actions/PrintActions.cc
   development/source/main/cStats.cc
   development/source/main/cStats.h
Log:
Cleaned up some of the recently-added treatable deme stats

Modified: development/source/actions/PrintActions.cc
===================================================================
--- development/source/actions/PrintActions.cc	2009-06-18 21:09:54 UTC (rev 3324)
+++ development/source/actions/PrintActions.cc	2009-06-19 17:45:46 UTC (rev 3325)
@@ -110,11 +110,10 @@
 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(PrintAvgDemeTasksExeData,    avg_deme_tasks_exe.dat  );
+STATS_OUT_FILE(PrintAvgTreatableDemeTasksExeData, avg_treatable_deme_tasks_exe.dat  );
+STATS_OUT_FILE(PrintAvgUntreatableDemeTasksExeData, avg_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  );
@@ -3044,11 +3043,10 @@
   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<cActionPrintAvgDemeTasksExeData>("PrintAvgDemeTasksExeData");
+  action_lib->Register<cActionPrintAvgTreatableDemeTasksExeData>("PrintAvgTreatableDemeTasksExeData");
+  action_lib->Register<cActionPrintAvgUntreatableDemeTasksExeData>("PrintAvgUntreatableDemeTasksExeData");
   action_lib->Register<cActionPrintPerDemeReactionData>("PrintPerDemeReactionData");
   action_lib->Register<cActionPrintDemeTasksData>("PrintDemeTasksData");
   action_lib->Register<cActionPrintDemeTasksExeData>("PrintDemeTasksExeData");

Modified: development/source/main/cStats.cc
===================================================================
--- development/source/main/cStats.cc	2009-06-18 21:09:54 UTC (rev 3324)
+++ development/source/main/cStats.cc	2009-06-19 17:45:46 UTC (rev 3325)
@@ -1730,6 +1730,7 @@
   m_deme_founders.clear();
 }
 
+
 void cStats::PrintPerDemeTasksData(const cString& filename){
   cDataFile& df = m_world->GetDataFile(filename);
 	df.WriteComment("Avida deme tasks data");
@@ -1740,7 +1741,7 @@
 
   const int num_tasks = m_world->GetEnvironment().GetNumTasks();
 
-	df.Write(m_update,   "Update");
+	df.Write(m_update, "Update");
   for(int i=0; i<m_world->GetPopulation().GetNumDemes(); ++i) {
     cDeme& deme = m_world->GetPopulation().GetDeme(i);
     for(int j = 0; j < num_tasks; j++) {
@@ -1750,118 +1751,110 @@
   df.Endl();
 }
 
-void cStats::PrintPerTreatableDemeTasksData(const cString& filename) {
+
+void cStats::PrintPerDemeTasksExeData(const cString& filename){
   cDataFile& df = m_world->GetDataFile(filename);
-	df.WriteComment("Avida treatable deme tasks data");
+	df.WriteComment("Avida deme tasks exe 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("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");
+
+	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] );
-      }
+    for(int j = 0; j < num_tasks; j++) {
+      df.Write( deme.GetLastTaskExeCount()[j], cStringUtil::Stringf("%i.", i) + task_names[j] );
     }
 	}
   df.Endl();
 }
 
 
-void cStats::PrintPerUntreatableDemeTasksData(const cString& filename) {
+void cStats::PrintAvgDemeTasksExeData(const cString& filename) {
   cDataFile& df = m_world->GetDataFile(filename);
-	df.WriteComment("Avida untreatable deme tasks data");
+  const int num_demes = m_world->GetPopulation().GetNumDemes();
+  const int num_tasks = m_world->GetEnvironment().GetNumTasks();
+  cIntSum tasksum;
+  
+	df.WriteComment("Avida average 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");
+  df.WriteComment("First column is the update, remaining columns are the average number of times");
+  df.WriteComment("each task has been executed by the demes");
+  df.WriteComment(cStringUtil::Stringf("Data based on %i demes and %i tasks", num_demes, num_tasks));
   
-  const int num_tasks = m_world->GetEnvironment().GetNumTasks();
+  df.Write(m_update, "Update");
   
-	df.Write(m_update,   "Update");
-  for(int i=0; i<m_world->GetPopulation().GetNumDemes(); ++i) {
-    cDeme& deme = m_world->GetPopulation().GetDeme(i);
+  for(int t = 0; t < num_tasks; t++) {
+    tasksum.Clear();
     
-    if(!deme.isTreatable()) {
-      for(int j = 0; j < num_tasks; j++) {
-        df.Write( (deme.GetLastTaskExeCount()[j] > 0), cStringUtil::Stringf("%i.", i) + task_names[j] );
-      }
+    for(int d = 0; d < num_demes; d++) {
+      cDeme& deme = m_world->GetPopulation().GetDeme(d);
+      tasksum.Add(deme.GetLastTaskExeCount()[t]);
     }
-	}
-  df.Endl();
+    df.Write(tasksum.Average(), task_names[t]);
+  }
+  df.Endl();  
 }
 
-void cStats::PrintPerDemeTasksExeData(const cString& filename){
-  cDataFile& df = m_world->GetDataFile(filename);
-	df.WriteComment("Avida 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);
-    for(int j = 0; j < num_tasks; j++) {
-      df.Write( deme.GetLastTaskExeCount()[j], cStringUtil::Stringf("%i.", i) + task_names[j] );
-    }
-	}
-  df.Endl();
-}
-
-void cStats::PrintPerTreatableDemeTasksExeData(const cString& filename) {
+void cStats::PrintAvgTreatableDemeTasksExeData(const cString& filename) {
   cDataFile& df = m_world->GetDataFile(filename);
-	df.WriteComment("Avida treatable deme tasks exe data");
+  const int num_demes = m_world->GetPopulation().GetNumDemes();
+  const int num_tasks = m_world->GetEnvironment().GetNumTasks();
+  cIntSum tasksum;
+  
+	df.WriteComment("Avida average tasks data for treatable demes");
 	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");
+  df.WriteComment("First column is the update, remaining columns are the average number of times");
+  df.WriteComment("each task has been executed by treatable demes");
+  df.WriteComment(cStringUtil::Stringf("Data based on %i demes and %i tasks", num_demes, num_tasks));
   
-  const int num_tasks = m_world->GetEnvironment().GetNumTasks();
+  df.Write(m_update, "Update");
   
-	df.Write(m_update,   "Update");
-  for(int i=0; i<m_world->GetPopulation().GetNumDemes(); ++i) {
-    cDeme& deme = m_world->GetPopulation().GetDeme(i);
+  for(int t = 0; t < num_tasks; t++) {
+    tasksum.Clear();
     
-    if(deme.isTreatable()) {
-      for(int j = 0; j < num_tasks; j++) {
-        df.Write( deme.GetLastTaskExeCount()[j], cStringUtil::Stringf("%i.", i) + task_names[j] );
+    for(int d = 0; d < num_demes; d++) {
+      cDeme& deme = m_world->GetPopulation().GetDeme(d);
+      if(deme.isTreatable()) {
+        tasksum.Add(deme.GetLastTaskExeCount()[t]);
       }
     }
-	}
-  df.Endl();
+    df.Write(tasksum.Average(), task_names[t]);
+  }
+  df.Endl();  
 }
 
 
-void cStats::PrintPerUntreatableDemeTasksExeData(const cString& filename) {
+void cStats::PrintAvgUntreatableDemeTasksExeData(const cString& filename) {
   cDataFile& df = m_world->GetDataFile(filename);
-	df.WriteComment("Avida untreatable deme tasks exe data");
+  const int num_demes = m_world->GetPopulation().GetNumDemes();
+  const int num_tasks = m_world->GetEnvironment().GetNumTasks();
+  cIntSum tasksum;
+  
+	df.WriteComment("Avida average tasks data for untreatable demes");
 	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");
+  df.WriteComment("First column is the update, remaining columns are the average number of times");
+  df.WriteComment("each task has been executed by untreatable demes");
+  df.WriteComment(cStringUtil::Stringf("Data based on %i demes and %i tasks", num_demes, num_tasks));
   
-  const int num_tasks = m_world->GetEnvironment().GetNumTasks();
+  df.Write(m_update, "Update");
   
-	df.Write(m_update,   "Update");
-  for(int i=0; i<m_world->GetPopulation().GetNumDemes(); ++i) {
-    cDeme& deme = m_world->GetPopulation().GetDeme(i);
+  for(int t = 0; t < num_tasks; t++) {
+    tasksum.Clear();
     
-    if(!deme.isTreatable()) {
-      for(int j = 0; j < num_tasks; j++) {
-        df.Write( deme.GetLastTaskExeCount()[j], cStringUtil::Stringf("%i.", i) + task_names[j] );
+    for(int d = 0; d < num_demes; d++) {
+      cDeme& deme = m_world->GetPopulation().GetDeme(d);
+      if(!deme.isTreatable()) {
+        tasksum.Add(deme.GetLastTaskExeCount()[t]);
       }
     }
-	}
-  df.Endl();
+    df.Write(tasksum.Average(), task_names[t]);
+  }
+  df.Endl();  
 }
 
 

Modified: development/source/main/cStats.h
===================================================================
--- development/source/main/cStats.h	2009-06-18 21:09:54 UTC (rev 3324)
+++ development/source/main/cStats.h	2009-06-19 17:45:46 UTC (rev 3325)
@@ -850,11 +850,10 @@
   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 PrintAvgDemeTasksExeData(const cString& filename);
+  void PrintAvgTreatableDemeTasksExeData(const cString& filename);
+  void PrintAvgUntreatableDemeTasksExeData(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