[Avida-SVN] r2025 - in branches/energy: Avida.xcodeproj source/main

beckma24 at myxo.css.msu.edu beckma24 at myxo.css.msu.edu
Wed Aug 29 06:09:27 PDT 2007


Author: beckma24
Date: 2007-08-29 09:09:27 -0400 (Wed, 29 Aug 2007)
New Revision: 2025

Modified:
   branches/energy/Avida.xcodeproj/project.pbxproj
   branches/energy/source/main/cAvidaConfig.h
   branches/energy/source/main/cPopulation.cc
Log:
Added option to GERMLINE_RANDOM_PLACEMENT that orients organisms that are injected into the middle of the deme

Modified: branches/energy/Avida.xcodeproj/project.pbxproj
===================================================================
--- branches/energy/Avida.xcodeproj/project.pbxproj	2007-08-29 02:12:18 UTC (rev 2024)
+++ branches/energy/Avida.xcodeproj/project.pbxproj	2007-08-29 13:09:27 UTC (rev 2025)
@@ -210,6 +210,23 @@
 		};
 /* End PBXBuildRule section */
 
+/* Begin PBXBuildStyle section */
+		B515C5FC0C84ADE300DFD6A6 /* Development */ = {
+			isa = PBXBuildStyle;
+			buildSettings = {
+				COPY_PHASE_STRIP = NO;
+			};
+			name = Development;
+		};
+		B515C5FD0C84ADE300DFD6A6 /* Deployment */ = {
+			isa = PBXBuildStyle;
+			buildSettings = {
+				COPY_PHASE_STRIP = YES;
+			};
+			name = Deployment;
+		};
+/* End PBXBuildStyle section */
+
 /* Begin PBXContainerItemProxy section */
 		56F555DA0C3B36FC00E2E929 /* PBXContainerItemProxy */ = {
 			isa = PBXContainerItemProxy;
@@ -1769,6 +1786,12 @@
 		DCC30C4D0762532C008F7A48 /* Project object */ = {
 			isa = PBXProject;
 			buildConfigurationList = 702442D70859E0B00059BD9B /* Build configuration list for PBXProject "Avida" */;
+			buildSettings = {
+			};
+			buildStyles = (
+				B515C5FC0C84ADE300DFD6A6 /* Development */,
+				B515C5FD0C84ADE300DFD6A6 /* Deployment */,
+			);
 			hasScannedForEncodings = 0;
 			mainGroup = DCC30C490762532C008F7A48;
 			productRefGroup = DCC3164E07626CF3008F7A48 /* Products */;

Modified: branches/energy/source/main/cAvidaConfig.h
===================================================================
--- branches/energy/source/main/cAvidaConfig.h	2007-08-29 02:12:18 UTC (rev 2024)
+++ branches/energy/source/main/cAvidaConfig.h	2007-08-29 13:09:27 UTC (rev 2025)
@@ -298,7 +298,7 @@
   CONFIG_ADD_VAR(DEMES_HAVE_MERIT, int, 0, "Whether demes have merit; 0=no");
   CONFIG_ADD_VAR(GERMLINE_COPY_MUT, double, 0.0075, "Prob. of copy mutations occuring during\ngermline replication.");
   CONFIG_ADD_VAR(GERMLINE_REPLACES_SOURCE, int, 0, "Whether the source germline is updated\non replication; 0=no.");
-  CONFIG_ADD_VAR(GERMLINE_RANDOM_PLACEMENT, int, 0, "Whether the seed for a germline is placed\n randomly within the deme; 0=no.");
+  CONFIG_ADD_VAR(GERMLINE_RANDOM_PLACEMENT, int, 0, "Defines how the seed for a germline is placed\n within the deme;\n0 = organisms is placed in center of deme, no orientation\n1 = organisms is placed in center of deme and oriented\n2 = organism is randomly placed in deme, no orientation");
   CONFIG_ADD_VAR(MAX_DEME_AGE, int, 500, "The maximum age of a deme (in updates) to be\nused for age-based replication (default=500).");  
   
   CONFIG_ADD_GROUP(REPRODUCTION_GROUP, "Birth and Death");

Modified: branches/energy/source/main/cPopulation.cc
===================================================================
--- branches/energy/source/main/cPopulation.cc	2007-08-29 02:12:18 UTC (rev 2024)
+++ branches/energy/source/main/cPopulation.cc	2007-08-29 13:09:27 UTC (rev 2025)
@@ -1163,18 +1163,33 @@
       source_deme.Reset();
       target_deme.Reset();
   
-      // Lineage label is wrong here; fix.
-      if(m_world->GetConfig().GERMLINE_RANDOM_PLACEMENT.Get()) {
-        InjectGenome(source_deme.GetCellID(m_world->GetRandom().GetInt(0, source_deme.GetSize()-1)),
-                     source_germline.GetLatest(), 0);
-        InjectGenome(target_deme.GetCellID(m_world->GetRandom().GetInt(0, target_deme.GetSize()-1)),
-                     target_germline.GetLatest(), 0);
+      int source_deme_inject_cell;
+      int target_deme_inject_cell;
+      
+      if(m_world->GetConfig().GERMLINE_RANDOM_PLACEMENT.Get() == 2) {
+        // organism is randomly placed in deme
+        source_deme_inject_cell = source_deme.GetCellID(m_world->GetRandom().GetInt(0, source_deme.GetSize()-1));
+        target_deme_inject_cell = target_deme.GetCellID(m_world->GetRandom().GetInt(0, target_deme.GetSize()-1));
       } else {
-        InjectGenome(source_deme.GetCellID(source_deme.GetSize()/2), source_germline.GetLatest(), 0);
-        InjectGenome(target_deme.GetCellID(target_deme.GetSize()/2), target_germline.GetLatest(), 0);
+        // organisms is placed in center of deme
+        source_deme_inject_cell = source_deme.GetCellID(source_deme.GetSize()/2);
+        target_deme_inject_cell = target_deme.GetCellID(target_deme.GetSize()/2);
       }
+      // Lineage label is wrong here; fix.
+      InjectGenome(source_deme_inject_cell, source_germline.GetLatest(), 0); // source deme
+      InjectGenome(target_deme_inject_cell, target_germline.GetLatest(), 0); // target deme
       
-      // Note: not rotating the clones.
+      if(m_world->GetConfig().GERMLINE_RANDOM_PLACEMENT.Get() == 1) {
+        // Rotate both injected cells to face northwest.
+        int offset = source_deme.GetCellID(0);
+        cell_array[source_deme_inject_cell].Rotate(cell_array[GridNeighbor(source_deme_inject_cell-offset,
+                                                              source_deme.GetWidth(),
+                                                              source_deme.GetHeight(), -1, -1)+offset]);
+        offset = target_deme.GetCellID(0);
+        cell_array[target_deme_inject_cell].Rotate(cell_array[GridNeighbor(target_deme_inject_cell-offset,
+                                                              target_deme.GetWidth(), 
+                                                              target_deme.GetHeight(), -1, -1)+offset]);
+      }
     } else {
       // Not using germline; choose a random organism from this deme.
       int cell1_id = -1;
@@ -1187,7 +1202,7 @@
         cGenome seed_genome = seed_org->GetGenome();
         int seed_lineage = seed_org->GetLineageLabel();
 
-        // Kill all the organisms in the source deme.  Orgs. in dest. deme are already killed
+        // Kill all the organisms in the source deme.  Orgs. in target deme have already been killed
         for (int i=0; i<source_deme.GetSize(); i++) {
           KillOrganism(cell_array[source_deme.GetCellID(i)]);
         }
@@ -1199,7 +1214,7 @@
         int target_deme_inject_cell = target_deme.GetCellID(target_deme.GetSize()/2);
         
         InjectGenome(source_deme_inject_cell, seed_genome, seed_lineage); // source deme
-        InjectGenome(target_deme_inject_cell, seed_genome, seed_lineage); // destination deme
+        InjectGenome(target_deme_inject_cell, seed_genome, seed_lineage); // target deme
         
         // Rotate both injected cells to face northwest.
         int offset = source_deme.GetCellID(0);
@@ -1238,8 +1253,7 @@
         cell_array[cell3_id].Rotate(cell_array[GridNeighbor(cell3_id-offset,
                                                             source_deme.GetWidth(),
                                                             source_deme.GetHeight(), -1, -1)+offset]);
-                                                            
-                                          
+
         // This is in the wrong place.  Reset should be done after the demes are cleared and before the org. is injected.
         source_deme.Reset();
         target_deme.Reset();




More information about the Avida-cvs mailing list