[Avida-SVN] r2432 - in development: Avida.xcodeproj source/main

beckma24 at myxo.css.msu.edu beckma24 at myxo.css.msu.edu
Fri Mar 7 07:41:09 PST 2008


Author: beckma24
Date: 2008-03-07 10:41:08 -0500 (Fri, 07 Mar 2008)
New Revision: 2432

Modified:
   development/Avida.xcodeproj/project.pbxproj
   development/source/main/cDeme.cc
   development/source/main/cDeme.h
   development/source/main/cPopulation.cc
   development/source/main/cStats.cc
   development/source/main/cStats.h
Log:
Added generation to cDeme

Modified: development/Avida.xcodeproj/project.pbxproj
===================================================================
--- development/Avida.xcodeproj/project.pbxproj	2008-03-07 05:03:09 UTC (rev 2431)
+++ development/Avida.xcodeproj/project.pbxproj	2008-03-07 15:41:08 UTC (rev 2432)
@@ -218,6 +218,23 @@
 		};
 /* End PBXBuildRule section */
 
+/* Begin PBXBuildStyle section */
+		B51C949C0D6B3FD1004D5839 /* Development */ = {
+			isa = PBXBuildStyle;
+			buildSettings = {
+				COPY_PHASE_STRIP = NO;
+			};
+			name = Development;
+		};
+		B51C949D0D6B3FD1004D5839 /* Deployment */ = {
+			isa = PBXBuildStyle;
+			buildSettings = {
+				COPY_PHASE_STRIP = YES;
+			};
+			name = Deployment;
+		};
+/* End PBXBuildStyle section */
+
 /* Begin PBXContainerItemProxy section */
 		56F555DA0C3B36FC00E2E929 /* PBXContainerItemProxy */ = {
 			isa = PBXContainerItemProxy;
@@ -1803,12 +1820,16 @@
 		DCC30C4D0762532C008F7A48 /* Project object */ = {
 			isa = PBXProject;
 			buildConfigurationList = 702442D70859E0B00059BD9B /* Build configuration list for PBXProject "Avida" */;
-			compatibilityVersion = "Xcode 2.4";
+			buildSettings = {
+			};
+			buildStyles = (
+				B51C949C0D6B3FD1004D5839 /* Development */,
+				B51C949D0D6B3FD1004D5839 /* Deployment */,
+			);
 			hasScannedForEncodings = 0;
 			mainGroup = DCC30C490762532C008F7A48;
 			productRefGroup = DCC3164E07626CF3008F7A48 /* Products */;
 			projectDirPath = "";
-			projectRoot = "";
 			targets = (
 				7023ED520C0A590200362B9C /* full-suite */,
 				DCC3164C07626CF3008F7A48 /* avida */,
@@ -1835,7 +1856,6 @@
 			runOnlyForDeploymentPostprocessing = 0;
 			shellPath = /bin/sh;
 			shellScript = "mkdir -p $DERIVED_FILE_DIR\nif (test -x /usr/bin/svnversion)\nthen svncmd=/usr/bin/svnversion\nelif (test -x /usr/local/bin/svnversion)\nthen svncmd=/usr/local/bin/svnversion\nelif (test -x /usr/local/svn/bin/svnversion)\nthen svncmd=/usr/local/svn/bin/svnversion\nelse\n  echo \"Warning: 'svn' not found, please install subversion\"\n  if [[ ! -f $DERIVED_FILE_DIR/revision.h ]]\n  then\n    echo \"#ifndef revision_h\" > $DERIVED_FILE_DIR/revision.h\n    echo \"#define revision_h\" >> $DERIVED_FILE_DIR/revision.h\n    echo \"#define REVISION \\\"???\\\"\" >> $DERIVED_FILE_DIR/revision.h\n    echo \"#endif\" >> $DERIVED_FILE_DIR/revision.h\n  fi\nfi\n\necho \"#ifndef revision_h\" > /tmp/newrev.tmp\necho \"#define revision_h\" >> /tmp/newrev.tmp\necho \\#define REVISION \\\"`$svncmd`\\\" >> /tmp/newrev.tmp\necho \"#endif\" >> /tmp/newrev.tmp\n\nif [[ -f $DERIVED_FILE_DIR/revision.h ]]\nthen\n  revdiff=`diff $DERIVED_FILE_DIR/revision.h /tmp/newrev.tmp`\nelse\n!
   revdiff=\"yes\"\nfi\n\nif [[ -n \"$revdiff\" ]]\nthen\n  echo \"New revision.h Generated\"\n  cp /tmp/newrev.tmp $DERIVED_FILE_DIR/revision.h\n  touch $SRCROOT/source/main/avida.cc\nfi\n\nrm /tmp/newrev.tmp\n";
-			showEnvVarsInLog = 0;
 		};
 		70D845480D73677E00601F5A /* ShellScript */ = {
 			isa = PBXShellScriptBuildPhase;
@@ -1849,7 +1869,6 @@
 			runOnlyForDeploymentPostprocessing = 0;
 			shellPath = /bin/sh;
 			shellScript = "./run_tests --builddir=$BUILD_DIR/$BUILD_STYLE/ _asl*";
-			showEnvVarsInLog = 0;
 		};
 /* End PBXShellScriptBuildPhase section */
 

Modified: development/source/main/cDeme.cc
===================================================================
--- development/source/main/cDeme.cc	2008-03-07 05:03:09 UTC (rev 2431)
+++ development/source/main/cDeme.cc	2008-03-07 15:41:08 UTC (rev 2432)
@@ -94,15 +94,16 @@
   ++_age;
 }
 
-void cDeme::Reset(bool resetResources)
+void cDeme::Reset(int previous_generation, bool resetResources)
 {
   birth_count = 0;
   _age = 0;
+  generation = previous_generation + 1;
   if(resetResources)
     deme_resource_count.ReinitializeResources();
 }
 
-void cDeme::Reset(double deme_energy, bool resetResources)
+void cDeme::Reset(double deme_energy, int previous_generation, bool resetResources)
 {
   assert(m_world->GetConfig().ENERGY_ENABLED.Get());
   assert(org_count>0);
@@ -122,7 +123,7 @@
       phenotype.SetMerit(cMerit(cMerit::EnergyToMerit(phenotype.GetStoredEnergy() * phenotype.GetEnergyUsageRatio(), m_world)));
     }
   }
-  Reset(resetResources);
+  Reset(previous_generation, resetResources);
 }
 
 

Modified: development/source/main/cDeme.h
===================================================================
--- development/source/main/cDeme.h	2008-03-07 05:03:09 UTC (rev 2431)
+++ development/source/main/cDeme.h	2008-03-07 15:41:08 UTC (rev 2432)
@@ -48,6 +48,7 @@
   int birth_count; //!< Number of organisms that have been born into this deme since reset.
   int org_count; //!< Number of organisms are currently in this deme.
   int _age; //!< Age of this deme, in updates.
+  int generation; //!< Generation of this deme
   double total_org_energy; //! total amount of energy in organisms in this deme
   
   cGermline _germline; //!< The germline for this deme, if used.
@@ -63,7 +64,7 @@
   cMerit _next_merit; //!< Deme merit that will be inherited upon deme replication.
   
 public:
-  cDeme() : _id(0), width(0), birth_count(0), org_count(0), _age(0), total_org_energy(0.0), deme_resource_count(0) { ; }
+  cDeme() : _id(0), width(0), birth_count(0), org_count(0), _age(0), generation(0), total_org_energy(0.0), deme_resource_count(0) { ; }
   ~cDeme() { ; }
 
   void Setup(int id, const tArray<int>& in_cells, int in_width = -1, cWorld* world = NULL);
@@ -78,8 +79,8 @@
   int GetWidth() const { return width; }
   int GetHeight() const { return cell_ids.GetSize() / width; }
 
-  void Reset(bool resetResources = true);
-  void Reset(double deme_energy, bool resetResources = true); //! used to pass energy to offspring deme
+  void Reset(int previous_generation, bool resetResources = true);
+  void Reset(double deme_energy, int previous_generation, bool resetResources = true); //! used to pass energy to offspring deme
   //! Kills all organisms currently in this deme.
   void KillAll();
   int GetBirthCount() const { return birth_count; }
@@ -88,6 +89,8 @@
   int GetOrgCount() const { return org_count; }
   void IncOrgCount() { org_count++; }
   void DecOrgCount() { org_count--; }
+  
+  int GetGeneration() const { return generation; }
 
   bool IsEmpty() const { return org_count == 0; }
   bool IsFull() const { return org_count == cell_ids.GetSize(); }

Modified: development/source/main/cPopulation.cc
===================================================================
--- development/source/main/cPopulation.cc	2008-03-07 05:03:09 UTC (rev 2431)
+++ development/source/main/cPopulation.cc	2008-03-07 15:41:08 UTC (rev 2432)
@@ -1077,7 +1077,7 @@
   
   // Reset all deme stats to zero.
   for (int deme_id = 0; deme_id < num_demes; deme_id++) {
-    deme_array[deme_id].Reset();
+    deme_array[deme_id].Reset(deme_array[deme_id].GetGeneration()); // increase deme generation by 1
   }
 }
 
@@ -1252,17 +1252,18 @@
   }
   
   // Reset both demes, in case they have any cleanup work to do.
+  int source_deme_generation = source_deme.GetGeneration();
   if(m_world->GetConfig().ENERGY_ENABLED.Get()) {
     // Transfer energy from source to target if we're using the energy model.
-    source_deme.Reset(parent_deme_energy, source_deme_resource_reset);
-    target_deme.Reset(offspring_deme_energy, target_deme_resource_reset);
+    source_deme.Reset(parent_deme_energy, source_deme_generation, source_deme_resource_reset);
+    target_deme.Reset(offspring_deme_energy, source_deme_generation, target_deme_resource_reset);
   } else {
     // Default; reset both source and target.
-    source_deme.Reset(source_deme_resource_reset);
-    target_deme.Reset(target_deme_resource_reset);
+    source_deme.Reset(source_deme_generation, source_deme_resource_reset);
+    target_deme.Reset(source_deme_generation, target_deme_resource_reset);
   }
   
-  // All done; do our post-replication stats tracking.
+  // do our post-replication stats tracking.
   m_world->GetStats().DemePostReplication(source_deme, target_deme);
 }
 
@@ -2434,6 +2435,7 @@
   stats.SumDemeAge().Clear();
   stats.SumDemeBirthCount().Clear();
   stats.SumDemeOrgCount().Clear();
+  stats.SumDemeGeneration().Clear();
   
   for(int i = 0; i < GetNumDemes(); i++) {
     cDeme& deme = GetDeme(i);
@@ -2442,6 +2444,7 @@
     stats.SumDemeAge().Add(deme.GetAge());
     stats.SumDemeBirthCount().Add(deme.GetBirthCount());
     stats.SumDemeOrgCount().Add(deme.GetOrgCount());
+    stats.SumDemeGeneration().Add(deme.GetGeneration());
   }
 }
 

Modified: development/source/main/cStats.cc
===================================================================
--- development/source/main/cStats.cc	2008-03-07 05:03:09 UTC (rev 2431)
+++ development/source/main/cStats.cc	2008-03-07 15:41:08 UTC (rev 2432)
@@ -579,6 +579,7 @@
   df.Write(sum_deme_age.Average(),          "Age");
   df.Write(sum_deme_birth_count.Average(),  "Births");
   df.Write(sum_deme_org_count.Average(),    "Organisms");
+  df.Write(sum_deme_generation.Average(),   "Generation");
   df.Endl();
 }
 

Modified: development/source/main/cStats.h
===================================================================
--- development/source/main/cStats.h	2008-03-07 05:03:09 UTC (rev 2431)
+++ development/source/main/cStats.h	2008-03-07 15:41:08 UTC (rev 2432)
@@ -269,6 +269,7 @@
   cIntSum sum_deme_age;
   cIntSum sum_deme_birth_count;
   cIntSum sum_deme_org_count;
+  cIntSum sum_deme_generation;
 
   // Speculative Execution Stats
   int m_spec_total;
@@ -409,7 +410,9 @@
   cIntSum& SumDemeAge()          { return sum_deme_age; }
   cIntSum& SumDemeBirthCount()   { return sum_deme_birth_count; }
   cIntSum& SumDemeOrgCount()     { return sum_deme_org_count; }
+  cIntSum& SumDemeGeneration()   { return sum_deme_generation; }
 
+
 #if INSTRUCTION_COUNT
   void ZeroInst();
 #endif
@@ -445,7 +448,9 @@
   const cIntSum& SumDemeAge() const          { return sum_deme_age; }
   const cIntSum& SumDemeBirthCount() const   { return sum_deme_birth_count; }
   const cIntSum& SumDemeOrgCount() const     { return sum_deme_org_count; }
+  const cIntSum& SumDemeGeneration() const   { return sum_deme_generation; }
 
+
   void IncResamplings() { ++num_resamplings; }  // @AWC 06/29/06
   void IncFailedResamplings() { ++num_failedResamplings; }  // @AWC 06/29/06
 




More information about the Avida-cvs mailing list