[Avida-SVN] r3340 - in branches/interrupt: . Avida.xcodeproj documentation source source/actions source/cpu source/main source/tools tests/energy_deme_level_res tests/energy_deme_level_res/expected tests/energy_deme_level_res/expected/data tests/interruptModel_quorumSensing tests/interruptModel_quorumSensing/config

beckma24 at myxo.css.msu.edu beckma24 at myxo.css.msu.edu
Thu Jun 25 14:17:10 PDT 2009


Author: beckma24
Date: 2009-06-25 17:17:10 -0400 (Thu, 25 Jun 2009)
New Revision: 3340

Added:
   branches/interrupt/source/main/cDemeNetwork.cc
   branches/interrupt/source/main/cDemeNetwork.h
   branches/interrupt/source/main/cDemeNetworkUtils.h
   branches/interrupt/source/main/cDemeTopologyNetwork.cc
   branches/interrupt/source/main/cDemeTopologyNetwork.h
   branches/interrupt/tests/energy_deme_level_res/expected/
   branches/interrupt/tests/energy_deme_level_res/expected/data/
   branches/interrupt/tests/energy_deme_level_res/expected/data/average.dat
   branches/interrupt/tests/energy_deme_level_res/expected/data/count.dat
   branches/interrupt/tests/energy_deme_level_res/expected/data/deme_0000000_spatial_energy.m
   branches/interrupt/tests/energy_deme_level_res/expected/data/deme_0000001_spatial_energy.m
   branches/interrupt/tests/energy_deme_level_res/expected/data/deme_donor.dat
   branches/interrupt/tests/energy_deme_level_res/expected/data/deme_fitness.dat
   branches/interrupt/tests/energy_deme_level_res/expected/data/deme_gest_time.dat
   branches/interrupt/tests/energy_deme_level_res/expected/data/deme_instruction-0.dat
   branches/interrupt/tests/energy_deme_level_res/expected/data/deme_instruction-1.dat
   branches/interrupt/tests/energy_deme_level_res/expected/data/deme_lifetime_fitness.dat
   branches/interrupt/tests/energy_deme_level_res/expected/data/deme_merit.dat
   branches/interrupt/tests/energy_deme_level_res/expected/data/deme_mut_rates.dat
   branches/interrupt/tests/energy_deme_level_res/expected/data/deme_receiver.dat
   branches/interrupt/tests/energy_deme_level_res/expected/data/deme_resources.dat
   branches/interrupt/tests/energy_deme_level_res/expected/data/deme_spatial_resource_deme_ResB.m
   branches/interrupt/tests/energy_deme_level_res/expected/data/deme_spatial_sleep.m
   branches/interrupt/tests/energy_deme_level_res/expected/data/deme_task.dat
   branches/interrupt/tests/energy_deme_level_res/expected/data/dominant.dat
   branches/interrupt/tests/energy_deme_level_res/expected/data/instruction.dat
   branches/interrupt/tests/energy_deme_level_res/expected/data/instruction_histogram.dat
   branches/interrupt/tests/energy_deme_level_res/expected/data/resource.dat
   branches/interrupt/tests/energy_deme_level_res/expected/data/sleep.dat
   branches/interrupt/tests/energy_deme_level_res/expected/data/stats.dat
   branches/interrupt/tests/energy_deme_level_res/expected/data/tasks.dat
   branches/interrupt/tests/energy_deme_level_res/expected/data/tasks_exe.dat
   branches/interrupt/tests/energy_deme_level_res/expected/data/time.dat
Removed:
   branches/interrupt/tests/energy_deme_level_res/expected/
   branches/interrupt/tests/energy_deme_level_res/expected/data/
   branches/interrupt/tests/energy_deme_level_res/expected/data/average.dat
   branches/interrupt/tests/energy_deme_level_res/expected/data/count.dat
   branches/interrupt/tests/energy_deme_level_res/expected/data/deme_0000000_spatial_energy.m
   branches/interrupt/tests/energy_deme_level_res/expected/data/deme_0000001_spatial_energy.m
   branches/interrupt/tests/energy_deme_level_res/expected/data/deme_donor.dat
   branches/interrupt/tests/energy_deme_level_res/expected/data/deme_fitness.dat
   branches/interrupt/tests/energy_deme_level_res/expected/data/deme_gest_time.dat
   branches/interrupt/tests/energy_deme_level_res/expected/data/deme_instruction-0.dat
   branches/interrupt/tests/energy_deme_level_res/expected/data/deme_instruction-1.dat
   branches/interrupt/tests/energy_deme_level_res/expected/data/deme_lifetime_fitness.dat
   branches/interrupt/tests/energy_deme_level_res/expected/data/deme_merit.dat
   branches/interrupt/tests/energy_deme_level_res/expected/data/deme_mut_rates.dat
   branches/interrupt/tests/energy_deme_level_res/expected/data/deme_receiver.dat
   branches/interrupt/tests/energy_deme_level_res/expected/data/deme_resources.dat
   branches/interrupt/tests/energy_deme_level_res/expected/data/deme_spatial_resource_deme_ResB.m
   branches/interrupt/tests/energy_deme_level_res/expected/data/deme_spatial_sleep.m
   branches/interrupt/tests/energy_deme_level_res/expected/data/deme_task.dat
   branches/interrupt/tests/energy_deme_level_res/expected/data/dominant.dat
   branches/interrupt/tests/energy_deme_level_res/expected/data/instruction.dat
   branches/interrupt/tests/energy_deme_level_res/expected/data/instruction_histogram.dat
   branches/interrupt/tests/energy_deme_level_res/expected/data/resource.dat
   branches/interrupt/tests/energy_deme_level_res/expected/data/sleep.dat
   branches/interrupt/tests/energy_deme_level_res/expected/data/stats.dat
   branches/interrupt/tests/energy_deme_level_res/expected/data/tasks.dat
   branches/interrupt/tests/energy_deme_level_res/expected/data/tasks_exe.dat
   branches/interrupt/tests/energy_deme_level_res/expected/data/time.dat
   branches/interrupt/tests/interruptModel_quorumSensing/expected/
Modified:
   branches/interrupt/Avida.xcodeproj/project.pbxproj
   branches/interrupt/CMakeLists.txt
   branches/interrupt/documentation/text_viewer.html
   branches/interrupt/source/actions/PopulationActions.cc
   branches/interrupt/source/actions/PrintActions.cc
   branches/interrupt/source/cpu/cHardwareBase.cc
   branches/interrupt/source/cpu/cHardwareBase.h
   branches/interrupt/source/cpu/cHardwareCPU.cc
   branches/interrupt/source/cpu/cHardwareCPU.h
   branches/interrupt/source/defs.h
   branches/interrupt/source/main/cAvidaConfig.h
   branches/interrupt/source/main/cBirthChamber.cc
   branches/interrupt/source/main/cDeme.cc
   branches/interrupt/source/main/cDeme.h
   branches/interrupt/source/main/cMutationRates.cc
   branches/interrupt/source/main/cMutationRates.h
   branches/interrupt/source/main/cOrganism.h
   branches/interrupt/source/main/cPopulation.cc
   branches/interrupt/source/main/cResourceCount.cc
   branches/interrupt/source/main/cResourceCount.h
   branches/interrupt/source/main/cStats.cc
   branches/interrupt/source/main/cStats.h
   branches/interrupt/source/tools/cProbSchedule.cc
   branches/interrupt/tests/interruptModel_quorumSensing/config/events.cfg
Log:
merged development r3275:3300 into interrupt branch.  All tests pass.  Remove expected results for test interruptModel_quorumSensing because or BUG FIX in r3286

Modified: branches/interrupt/Avida.xcodeproj/project.pbxproj
===================================================================
--- branches/interrupt/Avida.xcodeproj/project.pbxproj	2009-06-25 21:00:03 UTC (rev 3339)
+++ branches/interrupt/Avida.xcodeproj/project.pbxproj	2009-06-25 21:17:10 UTC (rev 3340)
@@ -26,6 +26,8 @@
 		10479F2E0F1BC54B00AF9F6A /* cMutationSteps.cc in Sources */ = {isa = PBXBuildFile; fileRef = 10479F2C0F1BC54B00AF9F6A /* cMutationSteps.cc */; };
 		2A57A3FF0D6B954D00FC54C7 /* cProbDemeProbSchedule.cc in Sources */ = {isa = PBXBuildFile; fileRef = 2A57A3FD0D6B954D00FC54C7 /* cProbDemeProbSchedule.cc */; };
 		2A57A4000D6B954D00FC54C7 /* cProbDemeProbSchedule.h in Headers */ = {isa = PBXBuildFile; fileRef = 2A57A3FE0D6B954D00FC54C7 /* cProbDemeProbSchedule.h */; };
+		42C27C840FDC22AC00C45B78 /* cDemeNetwork.cc in Sources */ = {isa = PBXBuildFile; fileRef = 42C27C7F0FDC22AC00C45B78 /* cDemeNetwork.cc */; };
+		42C27C870FDC22AC00C45B78 /* cDemeTopologyNetwork.cc in Sources */ = {isa = PBXBuildFile; fileRef = 42C27C820FDC22AC00C45B78 /* cDemeTopologyNetwork.cc */; };
 		5629D8110C3EE14800C5F152 /* cTextWindow.cc in Sources */ = {isa = PBXBuildFile; fileRef = 5629D80D0C3EE13500C5F152 /* cTextWindow.cc */; };
 		5629D8180C3EE20C00C5F152 /* libncurses.5.4.dylib in Frameworks */ = {isa = PBXBuildFile; fileRef = 70658C59085DF67D00486BED /* libncurses.5.4.dylib */; };
 		5629D8190C3EE21300C5F152 /* libavida-core.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 7023EC330C0A426900362B9C /* libavida-core.a */; };
@@ -396,6 +398,11 @@
 		423335890BC067E3000DF681 /* cHardwareGX.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = cHardwareGX.h; sourceTree = "<group>"; };
 		42490EFE0BE2472800318058 /* cGermline.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = cGermline.h; sourceTree = "<group>"; };
 		42777E5B0C7F123600AFA4ED /* cOrgMessage.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = cOrgMessage.h; sourceTree = "<group>"; };
+		42C27C7F0FDC22AC00C45B78 /* cDemeNetwork.cc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = cDemeNetwork.cc; sourceTree = "<group>"; };
+		42C27C800FDC22AC00C45B78 /* cDemeNetwork.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = cDemeNetwork.h; sourceTree = "<group>"; };
+		42C27C810FDC22AC00C45B78 /* cDemeNetworkUtils.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = cDemeNetworkUtils.h; sourceTree = "<group>"; };
+		42C27C820FDC22AC00C45B78 /* cDemeTopologyNetwork.cc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = cDemeTopologyNetwork.cc; sourceTree = "<group>"; };
+		42C27C830FDC22AC00C45B78 /* cDemeTopologyNetwork.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = cDemeTopologyNetwork.h; sourceTree = "<group>"; };
 		5629D80D0C3EE13500C5F152 /* cTextWindow.cc */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = cTextWindow.cc; sourceTree = "<group>"; };
 		5629D80E0C3EE13500C5F152 /* cTextWindow.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = cTextWindow.h; sourceTree = "<group>"; };
 		5629D80F0C3EE13500C5F152 /* ncurses-defs.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = "ncurses-defs.h"; sourceTree = "<group>"; };
@@ -1515,6 +1522,11 @@
 				702D4F3908DA61E2007BA469 /* cBirthChamber.h */,
 				1097463D0AE9606E00929ED6 /* cDeme.cc */,
 				1097463E0AE9606E00929ED6 /* cDeme.h */,
+				42C27C7F0FDC22AC00C45B78 /* cDemeNetwork.cc */,
+				42C27C800FDC22AC00C45B78 /* cDemeNetwork.h */,
+				42C27C810FDC22AC00C45B78 /* cDemeNetworkUtils.h */,
+				42C27C820FDC22AC00C45B78 /* cDemeTopologyNetwork.cc */,
+				42C27C830FDC22AC00C45B78 /* cDemeTopologyNetwork.h */,
 				702D4EFC08DA5341007BA469 /* cEnvironment.cc */,
 				702D4EF508DA5328007BA469 /* cEnvironment.h */,
 				70CA6EB208DB7F8200068AC2 /* cFitnessMatrix.cc */,
@@ -2172,6 +2184,8 @@
 				BB4777E70FF4074C00A015E4 /* cResourceHistory.cc in Sources */,
 				BB4777EA0FF4076C00A015E4 /* cOrgMessage.cc in Sources */,
 				BB4777F00FF407AE00A015E4 /* cModularityAnalysis.cc in Sources */,
+				42C27C840FDC22AC00C45B78 /* cDemeNetwork.cc in Sources */,
+				42C27C870FDC22AC00C45B78 /* cDemeTopologyNetwork.cc in Sources */,
 			);
 			runOnlyForDeploymentPostprocessing = 0;
 		};

Modified: branches/interrupt/CMakeLists.txt
===================================================================
--- branches/interrupt/CMakeLists.txt	2009-06-25 21:00:03 UTC (rev 3339)
+++ branches/interrupt/CMakeLists.txt	2009-06-25 21:17:10 UTC (rev 3340)
@@ -239,6 +239,8 @@
   ${MAIN_DIR}/cBirthNeighborhoodHandler.cc
   ${MAIN_DIR}/cBirthSelectionHandler.cc
   ${MAIN_DIR}/cDeme.cc
+  ${MAIN_DIR}/cDemeNetwork.cc
+  ${MAIN_DIR}/cDemeTopologyNetwork.cc
   ${MAIN_DIR}/cDemeCellEvent.cc
   ${MAIN_DIR}/cEnvironment.cc
   ${MAIN_DIR}/cEventList.cc

Modified: branches/interrupt/documentation/text_viewer.html
===================================================================
--- branches/interrupt/documentation/text_viewer.html	2009-06-25 21:00:03 UTC (rev 3339)
+++ branches/interrupt/documentation/text_viewer.html	2009-06-25 21:17:10 UTC (rev 3340)
@@ -46,5 +46,6 @@
 <hr />
 <p><a href="index.html">Return to the Index</a></p>
     
+
 </body>
 </html>

Modified: branches/interrupt/source/actions/PopulationActions.cc
===================================================================
--- branches/interrupt/source/actions/PopulationActions.cc	2009-06-25 21:00:03 UTC (rev 3339)
+++ branches/interrupt/source/actions/PopulationActions.cc	2009-06-25 21:17:10 UTC (rev 3340)
@@ -1073,6 +1073,124 @@
 
 
 /*
+ Decay the given resource in treatable demes over time
+ 
+ Parameters:
+ - The name of resource to decay
+ - How the amount of decay decreases over time ['const', 'lin', 'taper'] -- CASE SENSITIVE!
+   - none: the amount of resource decayed remains constant over time
+   - lin: the amount of resource decayed decreases linearly throughout the duration
+   - taper: retains a slowly-decreasing amount of decay then drops off sharply at the end of the duration
+ - Base amount to be removed.
+ - Duration (how long this resource decay should last.  works only with lin and exp.  none lasts infinitely.)
+ */
+
+class cAction_TherapyDecayDemeResource : public cAction
+  {
+  private:
+    cString m_resname;
+    cString m_decrtype;
+    double m_amount;
+    double m_duration;
+  public:
+    cAction_TherapyDecayDemeResource(cWorld* world, const cString& args) : cAction(world, args), m_amount(0), m_duration(1)
+    {
+      cString largs(args);
+      if (largs.GetSize()) m_resname = largs.PopWord();
+      if (largs.GetSize()) m_decrtype = largs.PopWord();
+      if (largs.GetSize()) m_amount = largs.PopWord().AsDouble();
+      if (largs.GetSize()) m_duration = largs.PopWord().AsInt();
+      assert(m_amount >= 0);
+      assert(m_amount <= 1);
+      assert(m_duration >= 1);
+    }
+    
+    static const cString GetDescription() { return "Arguments: [string resource_name=resname, string decrease_type=(none|lin|exp), double amount=0.2]"; }
+    
+    void Process(cAvidaContext& ctx)
+    {
+      double adjusted_amount;
+      int time_since_treatment;
+      int latest_treatment_age;
+      std::set<int> treatment_ages;
+      int deme_age;
+      
+      //adjusted amount will be something like max(0, 1 - (m_amount * time_since_treatment)) for linear
+            
+      cPopulation& pop = m_world->GetPopulation();
+      
+      for (int d = 0; d < pop.GetNumDemes(); d++) {
+        
+        cDeme &deme = pop.GetDeme(d);
+        deme_age = deme.GetAge();
+        latest_treatment_age = -1;
+        time_since_treatment = INT_MAX;
+        
+        if(deme.isTreatable()) {
+                    
+          treatment_ages = deme.GetTreatmentAges();
+          
+          // Find out the last update at which this treatment was started
+          for (std::set<int>::iterator it = treatment_ages.begin(); it != treatment_ages.end(); it++) {
+            if( (*it < deme_age) && (*it > latest_treatment_age) ) {
+              latest_treatment_age = *it;
+              time_since_treatment = deme_age - latest_treatment_age;
+            }
+          }
+          
+          // If we haven't begun treatment on this deme, or if this treatment is over, skip it.
+          if ((latest_treatment_age == -1) || (time_since_treatment > m_duration)) {
+            continue;
+          }
+                          
+          // Find out how much to decrease the resource by
+          // none - as long as the treatment is ongoing, it is at full force
+          // lin - as the treatment continues, the amount decayed decreases linearly
+          // exp - as treatment continues, the amount decayed decreases exponentially
+          if(m_decrtype == "const") {
+            if(time_since_treatment >= m_duration) {
+              adjusted_amount = 0;
+            } else {
+              adjusted_amount = m_amount;
+            }
+          } else if (m_decrtype == "lin") {
+            adjusted_amount = max(0.0, 1 - (time_since_treatment/m_duration)) * m_amount;
+          } else if (m_decrtype == "taper") {
+            adjusted_amount = max(0.0, 1 - pow(time_since_treatment/m_duration, 2)) * m_amount;
+          } else {
+            adjusted_amount = 0;
+          }
+                    
+          cResourceCount res = deme.GetDemeResourceCount();
+          const int resid = res.GetResourceByName(m_resname);
+          
+          if(resid == -1)
+          {
+            //Resource doesn't exist for this deme.  This is a bad situation, but just go to next deme.
+            cerr << "Error: Resource \"" << m_resname << "\" not defined for this deme" << endl;
+            continue;
+          }
+          
+          if(res.IsSpatial(resid)) {
+            for (int c = 0; c < deme.GetWidth() * deme.GetHeight(); c++) {
+              deme.AdjustSpatialResource(c, resid, -1 * deme.GetSpatialResource(c, resid) * adjusted_amount); 
+            } //End iterating through all cells
+          }
+          else
+          {
+            deme.AdjustResource(resid, -1 * res.Get(resid) * adjusted_amount);
+          }
+          
+        } //End if deme is treatable
+        
+      } //End iterating through all demes
+      
+    } //End Process()
+    
+  };
+
+
+/*
  In avida.cfg, when BASE_MERIT_METHOD is set to 6 (Merit prop. to num times MERIT_BONUS_INST is in genome), 
  the merit is incremented by MERIT_BONUS_EFFECT if MERIT_BONUS_EFFECT is positive and decremented by
  MERIT_BONUS_EFFECT if it is negative. For positive values the counting starts at 1, for negative values it starts
@@ -1745,7 +1863,7 @@
 	
   /*! Deme fitness function, to be overriden by specific types of deme competition.
    */
-  virtual double Fitness(const cDeme& deme) = 0;
+  virtual double Fitness(cDeme& deme) = 0;
 };
 
 
@@ -1811,6 +1929,27 @@
 };
 
 
+/*! Competes demes based on the networks they've constructed.
+ */
+class cActionCompeteDemesByNetwork : public cAbstractCompeteDemes {
+public:
+	//! Constructor.
+	cActionCompeteDemesByNetwork(cWorld* world, const cString& args) : cAbstractCompeteDemes(world, args) {
+	}
+	
+	//! Destructor.
+	virtual ~cActionCompeteDemesByNetwork() { }
+	
+	//! Retrieve this class's description.
+	static const cString GetDescription() { return "No arguments."; }
+	
+	//! Calculate the current fitness of this deme.
+  virtual double Fitness(cDeme& deme) {
+		return deme.GetNetwork().Fitness();
+	}
+};
+
+
 /*! This class contains methods that are useful for consensus-related problems.
  */
 class ConsensusSupport {
@@ -1881,7 +2020,7 @@
 	static const cString GetDescription() { return "Arguments: [int compete_period=100 [int replace_number=0]]"; }
 	
 	//! Calculate the current fitness of this deme.
-  virtual double Fitness(const cDeme& deme) {
+  virtual double Fitness(cDeme& deme) {
 		return max_support(deme).first + 1;
 	}
 	
@@ -1952,7 +2091,7 @@
 		return "Competes demes according to the number of times a given task has been completed within that deme"; 
 	}
 	
-	virtual double Fitness(const cDeme& deme) {
+	virtual double Fitness(cDeme& deme) {
 		double fitness = pow(deme.GetCurTaskExeCount()[_task_num], 2.0);///deme.GetInjectedCount());
     if (fitness == 0.0) fitness = 0.1;
     return fitness;
@@ -1991,7 +2130,7 @@
 		return "Competes demes according to the number of times a given task has been completed within that deme and the efficiency with which it was done"; 
 	}
 	
-	virtual double Fitness(const cDeme& deme) {
+	virtual double Fitness(cDeme& deme) {
     double energy_used = _initial_deme_energy - deme.CalculateTotalEnergy();
 		double fitness = 
 		pow(deme.GetCurTaskExeCount()[_task_num] * (_initial_deme_energy/energy_used),2);
@@ -2014,7 +2153,7 @@
 		return "Competes demes according to the distribution of energy among the organisms"; 
 	}
 	
-	virtual double Fitness(const cDeme& deme) {
+	virtual double Fitness(cDeme& deme) {
 		const int numcells = deme.GetSize();
 		
 		double min_energy = -1;
@@ -2106,7 +2245,7 @@
   /*! Calculate the fitness based on how well the organisms in this deme have
 	 synchronized their flashes.
    */
-  virtual double Fitness(const cDeme& deme) {
+  virtual double Fitness(cDeme& deme) {
 		cStats::PopulationFlashes::const_iterator deme_flashes = m_world->GetStats().GetFlashTimes().find(deme.GetID());
 		if(deme_flashes == m_world->GetStats().GetFlashTimes().end()) {
 			// Hm, nothing to see here.  We're done.
@@ -2177,7 +2316,7 @@
   static const cString GetDescription() { return "No Arguments"; }
   
 	//! Calculate fitness based on how well organisms have spread throughout phase-space.
-	virtual double Fitness(const cDeme& deme) {
+	virtual double Fitness(cDeme& deme) {
 		cStats::PopulationFlashes::const_iterator deme_flashes = m_world->GetStats().GetFlashTimes().find(deme.GetID());
 		if(deme_flashes == m_world->GetStats().GetFlashTimes().end()) {
 			// Hm, nothing to see here.  We're done.
@@ -2212,7 +2351,7 @@
 	
 	static const cString GetDescription() { return "No Arguments"; }
   
-	double Fitness(const cDeme& deme) {    
+	double Fitness(cDeme& deme) {    
 		double eventsKilled = static_cast<double>(deme.GetEventsKilled());
 		double totalEvents  = static_cast<double>(deme.GetEventsTotal());
 		double energyRemaining = deme.CalculateTotalEnergy();
@@ -2229,7 +2368,7 @@
 	
 	static const cString GetDescription() { return "No Arguments"; }
   
-	double Fitness(const cDeme& deme) {
+	double Fitness(cDeme& deme) {
 		if(m_world->GetConfig().DEMES_PREVENT_STERILE.Get() && deme.GetBirthCount() == 0)
 			return 1.0;
 		double energyRemaining = deme.CalculateTotalEnergy();
@@ -3203,6 +3342,7 @@
 	// Theraputic deme actions
 	action_lib->Register<cAction_TherapyStructuralNumInst>("TherapyStructuralNumInst");
 	action_lib->Register<cAction_TherapyStructuralRatioDistBetweenNearest>("TherapyStructuralRatioDistBetweenNearest");
+  action_lib->Register< cAction_TherapyDecayDemeResource>("TherapyDecayDemeResource");
 	
 	
   action_lib->Register<cActionToggleRewardInstruction>("ToggleRewardInstruction");
@@ -3234,6 +3374,7 @@
 	action_lib->Register<cAbstractCompeteDemes_EnergyConserve>("CompeteDemes_EnergyConserve");
   
   action_lib->Register<cAssignRandomCellData>("AssignRandomCellData");
+	action_lib->Register<cActionCompeteDemesByNetwork>("CompeteDemesByNetwork");
   action_lib->Register<cActionIteratedConsensus>("IteratedConsensus");
 	action_lib->Register<cActionSynchronization>("Synchronization");
 	action_lib->Register<cActionDesynchronization>("Desynchronization");

Modified: branches/interrupt/source/actions/PrintActions.cc
===================================================================
--- branches/interrupt/source/actions/PrintActions.cc	2009-06-25 21:00:03 UTC (rev 3339)
+++ branches/interrupt/source/actions/PrintActions.cc	2009-06-25 21:17:10 UTC (rev 3340)
@@ -107,6 +107,7 @@
 STATS_OUT_FILE(PrintDemeTreatableCount,    deme_treatable.dat       );
 
 STATS_OUT_FILE(PrintDemeCompetitionData,    deme_compete.dat);
+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(PrintPerDemeTasksExeData,    per_deme_tasks_exe.dat  );

Modified: branches/interrupt/source/cpu/cHardwareBase.cc
===================================================================
--- branches/interrupt/source/cpu/cHardwareBase.cc	2009-06-25 21:00:03 UTC (rev 3339)
+++ branches/interrupt/source/cpu/cHardwareBase.cc	2009-06-25 21:17:10 UTC (rev 3340)
@@ -199,14 +199,35 @@
  */
 int cHardwareBase::Divide_DoMutations(cAvidaContext& ctx, double mut_multiplier, const int maxmut)
 {
+  int max_genome_size = m_world->GetConfig().MAX_GENOME_SIZE.Get();
+  int min_genome_size = m_world->GetConfig().MIN_GENOME_SIZE.Get();
+  if (!max_genome_size || max_genome_size > MAX_CREATURE_SIZE) max_genome_size = MAX_CREATURE_SIZE;
+  if (!min_genome_size || min_genome_size < MIN_CREATURE_SIZE) min_genome_size = MIN_CREATURE_SIZE;
+
   int totalMutations = 0;
   cGenome& offspring_genome = m_organism->OffspringGenome().GetGenome();
   
   m_organism->GetPhenotype().SetDivType(mut_multiplier);
   
+  // @JEB 
+  // All slip mutations should happen first, so that there is a chance
+  // of getting a point mutation within one copy in the same divide.
+ 
   // Divide Slip Mutations - NOT COUNTED.
   if (m_organism->TestDivideSlip(ctx)) doSlipMutation(ctx, offspring_genome);
+ 
+  // Poisson Slip Mutations - NOT COUNTED
+  unsigned int num_poisson_slip = m_organism->NumDividePoissonSlip(ctx);
+  for (unsigned int i = 0; i < num_poisson_slip; i++) { doSlipMutation(ctx, offspring_genome);  }
     
+  // Slip Mutations (per site) - NOT COUNTED
+  if (m_organism->GetDivSlipProb() > 0) {
+    int num_mut = ctx.GetRandom().GetRandBinomial(offspring_genome.GetSize(), 
+                                                  m_organism->GetDivSlipProb() / mut_multiplier);
+    for (int i = 0; i < num_mut; i++) doSlipMutation(ctx, offspring_genome);
+  }
+  
+  
   // Divide Mutations
   if (m_organism->TestDivideMut(ctx) && totalMutations < maxmut) {
     const unsigned int mut_line = ctx.GetRandom().GetUInt(offspring_genome.GetSize());
@@ -215,32 +236,71 @@
     offspring_genome.GetMutationSteps().AddSubstitutionMutation(mut_line, before_mutation, offspring_genome[mut_line].GetSymbol());
     totalMutations++;
   }
+    
   
+  // Poisson Divide Mutations
+  unsigned int num_poisson_mut = m_organism->NumDividePoissonMut(ctx);
+  for (unsigned int i=0; i<num_poisson_mut; i++)
+  {
+    if (totalMutations >= maxmut) break;
+    const unsigned int mut_line = ctx.GetRandom().GetUInt(offspring_genome.GetSize());
+    char before_mutation = offspring_genome[mut_line].GetSymbol();
+    offspring_genome[mut_line] = m_inst_set->GetRandomInst(ctx);
+    offspring_genome.GetMutationSteps().AddSubstitutionMutation(mut_line, before_mutation, offspring_genome[mut_line].GetSymbol());
+    totalMutations++;
+  }
+ 
+  
   // Divide Insertions
-  if (m_organism->TestDivideIns(ctx) && offspring_genome.GetSize() < MAX_CREATURE_SIZE && totalMutations < maxmut) {
+  if (m_organism->TestDivideIns(ctx) && offspring_genome.GetSize() < max_genome_size && totalMutations < maxmut) {
     const unsigned int mut_line = ctx.GetRandom().GetUInt(offspring_genome.GetSize() + 1);
     offspring_genome.Insert(mut_line, m_inst_set->GetRandomInst(ctx));
     offspring_genome.GetMutationSteps().AddInsertionMutation(mut_line, offspring_genome[mut_line].GetSymbol());
     totalMutations++;
   }
-  
+
+
+  // Poisson Divide Insertions
+  unsigned int num_poisson_ins = m_organism->NumDividePoissonIns(ctx);
+  for (unsigned int i=0; i<num_poisson_ins; i++)
+  {
+    if (offspring_genome.GetSize() >= max_genome_size) break;
+    if (totalMutations >= maxmut) break;
+    const unsigned int mut_line = ctx.GetRandom().GetUInt(offspring_genome.GetSize() + 1);
+    offspring_genome.Insert(mut_line, m_inst_set->GetRandomInst(ctx));
+    offspring_genome.GetMutationSteps().AddInsertionMutation(mut_line, offspring_genome[mut_line].GetSymbol());
+    totalMutations++;
+  }
+   
+   
   // Divide Deletions
-  if (m_organism->TestDivideDel(ctx) && offspring_genome.GetSize() > MIN_CREATURE_SIZE && totalMutations < maxmut) {
+  if (m_organism->TestDivideDel(ctx) && offspring_genome.GetSize() > min_genome_size && totalMutations < maxmut) {
     const unsigned int mut_line = ctx.GetRandom().GetUInt(offspring_genome.GetSize());
     offspring_genome.GetMutationSteps().AddDeletionMutation(mut_line, offspring_genome[mut_line].GetSymbol());
     offspring_genome.Remove(mut_line);
     totalMutations++;
   }
 
+
+  // Poisson Divide Deletions
+  unsigned int num_poisson_del = m_organism->NumDividePoissonDel(ctx);
+  for (unsigned int i=0; i<num_poisson_del; i++)
+  {
+    if (offspring_genome.GetSize() <= min_genome_size) break;
+    if (totalMutations >= maxmut) break;
+    const unsigned int mut_line = ctx.GetRandom().GetUInt(offspring_genome.GetSize());
+    offspring_genome.GetMutationSteps().AddDeletionMutation(mut_line, offspring_genome[mut_line].GetSymbol());
+    offspring_genome.Remove(mut_line);
+    totalMutations++;
+  }
+
+
   // Divide Uniform Mutations
   if (m_organism->TestDivideUniform(ctx) && totalMutations < maxmut) {
     if (doUniformMutation(ctx, offspring_genome)) totalMutations++;
   }
   
   
-  
-  
-  
   // Divide Mutations (per site)
   if (m_organism->GetDivMutProb() > 0 && totalMutations < maxmut) {
     int num_mut = ctx.GetRandom().GetRandBinomial(offspring_genome.GetSize(), 
@@ -257,14 +317,13 @@
     }
   }
 
-  
   // Insert Mutations (per site)
   if (m_organism->GetDivInsProb() > 0 && totalMutations < maxmut) {
     int num_mut = ctx.GetRandom().GetRandBinomial(offspring_genome.GetSize(), m_organism->GetDivInsProb());
 
-    // If would make creature too big, insert up to MAX_CREATURE_SIZE
-    if (num_mut + offspring_genome.GetSize() > MAX_CREATURE_SIZE) {
-      num_mut = MAX_CREATURE_SIZE - offspring_genome.GetSize();
+    // If would make creature too big, insert up to max_genome_size
+    if (num_mut + offspring_genome.GetSize() > max_genome_size) {
+      num_mut = max_genome_size - offspring_genome.GetSize();
     }
     
     // If we have lines to insert...
@@ -289,9 +348,9 @@
   if (m_organism->GetDivDelProb() > 0 && totalMutations < maxmut) {
     int num_mut = ctx.GetRandom().GetRandBinomial(offspring_genome.GetSize(), m_organism->GetDivDelProb());
     
-    // If would make creature too small, delete down to MIN_CREATURE_SIZE
-    if (offspring_genome.GetSize() - num_mut < MIN_CREATURE_SIZE) {
-      num_mut = offspring_genome.GetSize() - MIN_CREATURE_SIZE;
+    // If would make creature too small, delete down to min_genome_size
+    if (offspring_genome.GetSize() - num_mut < min_genome_size) {
+      num_mut = offspring_genome.GetSize() - min_genome_size;
     }
     
     // If we have lines to delete...
@@ -320,18 +379,6 @@
     }
   }
   
-  
-  // Slip Mutations (per site) - NOT COUNTED
-  if (m_organism->GetDivSlipProb() > 0) {
-    int num_mut = ctx.GetRandom().GetRandBinomial(offspring_genome.GetSize(), 
-                                                  m_organism->GetDivSlipProb() / mut_multiplier);
-    for (int i = 0; i < num_mut; i++) doSlipMutation(ctx, offspring_genome);
-  }
-  
-  
-  
-  
-  
   // Mutations in the parent's genome
   if (m_organism->GetParentMutProb() > 0 && totalMutations < maxmut) {
     for (int i = 0; i < GetMemory().GetSize(); i++) {
@@ -349,17 +396,22 @@
 
 bool cHardwareBase::doUniformMutation(cAvidaContext& ctx, cGenome& genome)
 {
+
   int mut = ctx.GetRandom().GetUInt((m_inst_set->GetSize() * 2) + 1);
   
   if (mut < m_inst_set->GetSize()) { // point
     int site = ctx.GetRandom().GetUInt(genome.GetSize());
     genome[site] = cInstruction(mut);
   } else if (mut == m_inst_set->GetSize()) { // delete
-    if (genome.GetSize() == MIN_CREATURE_SIZE) return false;
+    int min_genome_size = m_world->GetConfig().MIN_GENOME_SIZE.Get();
+    if (!min_genome_size || min_genome_size < MIN_CREATURE_SIZE) min_genome_size = MIN_CREATURE_SIZE;
+    if (genome.GetSize() == min_genome_size) return false;
     int site = ctx.GetRandom().GetUInt(genome.GetSize());
     genome.Remove(site);
   } else { // insert
-    if (genome.GetSize() == MAX_CREATURE_SIZE) return false;
+    int max_genome_size = m_world->GetConfig().MAX_GENOME_SIZE.Get();
+    if (!max_genome_size || max_genome_size > MAX_CREATURE_SIZE) max_genome_size = MAX_CREATURE_SIZE;
+    if (genome.GetSize() == max_genome_size) return false;
     int site = ctx.GetRandom().GetUInt(genome.GetSize() + 1);
     genome.Insert(site, cInstruction(mut - m_inst_set->GetSize() - 1));
   }
@@ -962,17 +1014,15 @@
 bool cHardwareBase::SingleProcess_PayCosts(cAvidaContext& ctx, const cInstruction& cur_inst)
 {
 #if INSTRUCTION_COSTS
-
   if (m_world->GetConfig().ENERGY_ENABLED.Get() > 0) {
     // TODO:  Get rid of magic number. check avaliable energy first
     double energy_req = m_inst_energy_cost[cur_inst.GetOp()] * (m_organism->GetPhenotype().GetMerit().GetDouble() / 100.0); //compensate by factor of 100
     int cellID = m_organism->GetCellID();
-    
+		
     if((cellID != -1) && (energy_req > 0.0)) { // guard against running in the test cpu.
-
       if (m_organism->GetPhenotype().GetStoredEnergy() >= energy_req) {
-        m_inst_energy_cost[cur_inst.GetOp()] = 0;
-        // subtract energy used from current org energy.
+				m_inst_energy_cost[cur_inst.GetOp()] = 0.0;
+				// subtract energy used from current org energy.
         m_organism->GetPhenotype().ReduceEnergy(energy_req);  
         
         // tracking sleeping organisms
@@ -988,7 +1038,7 @@
         }
       } else {
         m_organism->GetPhenotype().SetToDie();
-        return false;
+				return false; // no more, your died...  (evil laugh)
       }
     }
   }

Modified: branches/interrupt/source/cpu/cHardwareBase.h
===================================================================
--- branches/interrupt/source/cpu/cHardwareBase.h	2009-06-25 21:00:03 UTC (rev 3339)
+++ branches/interrupt/source/cpu/cHardwareBase.h	2009-06-25 21:17:10 UTC (rev 3340)
@@ -67,7 +67,7 @@
   // --------  Instruction Costs  ---------
   int m_inst_cost;
   tArray<int> m_inst_ft_cost;
-  tArray<int> m_inst_energy_cost;
+  tArray<double> m_inst_energy_cost;
   bool m_has_any_costs;
   bool m_has_costs;
   bool m_has_ft_costs;

Modified: branches/interrupt/source/cpu/cHardwareCPU.cc
===================================================================
--- branches/interrupt/source/cpu/cHardwareCPU.cc	2009-06-25 21:00:03 UTC (rev 3339)
+++ branches/interrupt/source/cpu/cHardwareCPU.cc	2009-06-25 21:17:10 UTC (rev 3340)
@@ -833,6 +833,7 @@
 		
 		// Group formation instructions
 		tInstLibEntry<tMethod>("join-group", &cHardwareCPU::Inst_JoinGroup, nInstFlag::STALL),
+		tInstLibEntry<tMethod>("orgs-in-my-group", &cHardwareCPU::Inst_NumberOrgsInMyGroup, nInstFlag::STALL),
 		tInstLibEntry<tMethod>("orgs-in-group", &cHardwareCPU::Inst_NumberOrgsInGroup, nInstFlag::STALL),
 		
     // Must always be the last instruction in the array
@@ -9701,7 +9702,7 @@
 
 //! Gets the number of organisms in the current organism's group 
 //! and places the value in the ?CX? register
-bool cHardwareCPU::Inst_NumberOrgsInGroup(cAvidaContext& ctx)
+bool cHardwareCPU::Inst_NumberOrgsInMyGroup(cAvidaContext& ctx)
 {
 	int num_orgs = 0;
 	assert(m_organism != 0);
@@ -9715,3 +9716,19 @@
 	GetRegister(num_org_reg) = num_orgs;
 	return true;
 }
+
+
+//! Gets the number of organisms in the group of a given id
+//! specified by the ?BX? register and places the value in the ?CX? register
+bool cHardwareCPU::Inst_NumberOrgsInGroup(cAvidaContext& ctx)
+{
+	int num_orgs = 0;
+	assert(m_organism != 0);
+	const int group_id = FindModifiedRegister(REG_BX);
+	const int num_org_reg = FindModifiedRegister(REG_CX);
+
+	num_orgs = m_world->GetPopulation().NumberOfOrganismsInGroup(group_id);
+  
+	GetRegister(num_org_reg) = num_orgs;
+	return true;
+}

Modified: branches/interrupt/source/cpu/cHardwareCPU.h
===================================================================
--- branches/interrupt/source/cpu/cHardwareCPU.h	2009-06-25 21:00:03 UTC (rev 3339)
+++ branches/interrupt/source/cpu/cHardwareCPU.h	2009-06-25 21:17:10 UTC (rev 3340)
@@ -954,8 +954,9 @@
 	//! An organism joins a group by setting it opinion to the group id. 
 	bool Inst_JoinGroup(cAvidaContext& ctx);
 	//! Returns the number of organisms in the current organism's group
-	bool Inst_NumberOrgsInGroup(cAvidaContext& ctx);
-		
+	bool Inst_NumberOrgsInMyGroup(cAvidaContext& ctx);
+	//! Returns the number of organisms in the current organism's group
+	bool Inst_NumberOrgsInGroup(cAvidaContext& ctx);		
 	
 	
 };

Modified: branches/interrupt/source/defs.h
===================================================================
--- branches/interrupt/source/defs.h	2009-06-25 21:00:03 UTC (rev 3339)
+++ branches/interrupt/source/defs.h	2009-06-25 21:17:10 UTC (rev 3340)
@@ -46,6 +46,12 @@
 #ifndef FATAL_WARNINGS
 #define FATAL_WARNINGS 0
 #endif
+/* By default, Boost is not available.  To enable Boost, either modify your environment,
+ alter your build settings, or change this value -- BUT BE CAREFUL NOT TO CHECK IT IN LIKE THAT!
+ */
+#ifndef BOOST_IS_AVAILABLE
+#define BOOST_IS_AVAILABLE 0
+#endif
 
 // #define SPECIES_TEST
 

Modified: branches/interrupt/source/main/cAvidaConfig.h
===================================================================
--- branches/interrupt/source/main/cAvidaConfig.h	2009-06-25 21:00:03 UTC (rev 3339)
+++ branches/interrupt/source/main/cAvidaConfig.h	2009-06-25 21:17:10 UTC (rev 3340)
@@ -334,8 +334,6 @@
   CONFIG_ADD_VAR(DEMES_PROTECTION_POINTS, int, 0, "The number of points a deme receives for each suicide.");
 	CONFIG_ADD_VAR(POINT_DECAY_PERCENT, int, 0, "The percentage of points decayed each time cActionDecayPoints is called.");
 
-	
-
   CONFIG_ADD_GROUP(REPRODUCTION_GROUP, "Birth and Death");
   CONFIG_ADD_VAR(BIRTH_METHOD, int, 0, "Which organism should be replaced on birth?\n0 = Random organism in neighborhood\n1 = Oldest in neighborhood\n2 = Largest Age/Merit in neighborhood\n3 = None (use only empty cells in neighborhood)\n4 = Random from population (Mass Action)\n5 = Oldest in entire population\n6 = Random within deme\n7 = Organism faced by parent\n8 = Next grid cell (id+1)\n9 = Largest energy used in entire population\n10 = Largest energy used in neighborhood");
   CONFIG_ADD_VAR(PREFER_EMPTY, int, 1, "Give empty cells preference in offsping placement?");
@@ -395,12 +393,18 @@
   CONFIG_ADD_VAR(DIV_UNIFORM_PROB, double, 0.0, "Uniform mutation probability (per site, applied on divide)\n- Randomly applies any of the three classes of mutations (ins, del, point).");
   CONFIG_ADD_VAR(DIV_SLIP_PROB, double, 0.0, "Slip rate (per site, applied on divide)");
   
-  CONFIG_ADD_VAR(DIVIDE_MUT_PROB, double, 0.0, "Mutation rate (per divide)");
-  CONFIG_ADD_VAR(DIVIDE_INS_PROB, double, 0.05, "Insertion rate (per divide)");
-  CONFIG_ADD_VAR(DIVIDE_DEL_PROB, double, 0.05, "Deletion rate (per divide)");
-  CONFIG_ADD_VAR(DIVIDE_UNIFORM_PROB, double, 0.0, "Uniform mutation probability (per divide)\n- Randomly applies any of the three classes of mutations (ins, del, point).");
+  CONFIG_ADD_VAR(DIVIDE_MUT_PROB, double, 0.0, "Mutation rate (max one, per divide)");
+  CONFIG_ADD_VAR(DIVIDE_INS_PROB, double, 0.05, "Insertion rate (max one, per divide)");
+  CONFIG_ADD_VAR(DIVIDE_DEL_PROB, double, 0.05, "Deletion rate (max one, per divide)");
   CONFIG_ADD_VAR(DIVIDE_SLIP_PROB, double, 0.0, "Slip rate (per divide) - creates large deletions/duplications");
   
+  CONFIG_ADD_VAR(DIVIDE_POISSON_MUT_MEAN, double, 0.0, "Mutation rate (Poisson distributed, per divide)");
+  CONFIG_ADD_VAR(DIVIDE_POISSON_INS_MEAN, double, 0.0, "Insertion rate (Poisson distributed, per divide)");
+  CONFIG_ADD_VAR(DIVIDE_POISSON_DEL_MEAN, double, 0.0, "Deletion rate (Poisson distributed, per divide)");
+  CONFIG_ADD_VAR(DIVIDE_POISSON_SLIP_MEAN, double, 0.0, "Slip rate (Poisson distributed, per divide)");
+
+  CONFIG_ADD_VAR(DIVIDE_UNIFORM_PROB, double, 0.0, "Uniform mutation probability (per divide)\n- Randomly applies any of the three classes of mutations (ins, del, point).");
+  
   CONFIG_ADD_VAR(INJECT_INS_PROB, double, 0.0, "Insertion rate (per site, applied on inject)");
   CONFIG_ADD_VAR(INJECT_DEL_PROB, double, 0.0, "Deletion rate (per site, applied on inject)");
   CONFIG_ADD_VAR(INJECT_MUT_PROB, double, 0.0, "Mutation rate (per site, applied on inject)");
@@ -639,7 +643,15 @@
   CONFIG_ADD_VAR(SPECIALISTS, int, 0, "0=generalists allowed\n1=only specialists");
   CONFIG_ADD_VAR(STRING_AMOUNT_CAP, int, -1, "-1=no cap on string amounts\n#=CAP");
   CONFIG_ADD_VAR(MATCH_ALREADY_PRODUCED, int, 0, "0=off\n1=on");
-  
+	
+	CONFIG_ADD_GROUP(GROUP_FORMATION_GROUP, "Group Formation Settings");
+  CONFIG_ADD_VAR(USE_FORM_GROUPS, bool, 0, "Enable organisms to form groups. 0/1 (off/on)");
+	
+	// -------- Deme network config options --------
+	CONFIG_ADD_VAR(DEME_NETWORK_TYPE, int, 0, "0=topology, structure of network determines fitness.");
+	CONFIG_ADD_VAR(DEME_NETWORK_REQUIRES_CONNECTEDNESS, int, 1, "Whether the deme's network must be connected before an actual fitness is calculated.");
+	CONFIG_ADD_VAR(DEME_NETWORK_TOPOLOGY_FITNESS, int, 0, "Network measure used to determine fitness; see cDemeTopologyNetwork.h.");
+	
 #endif
   
   inline void Load(const cString& filename) { Load(filename, false); }

Modified: branches/interrupt/source/main/cBirthChamber.cc
===================================================================
--- branches/interrupt/source/main/cBirthChamber.cc	2009-06-25 21:00:03 UTC (rev 3339)
+++ branches/interrupt/source/main/cBirthChamber.cc	2009-06-25 21:17:10 UTC (rev 3340)
@@ -175,6 +175,12 @@
     // set child energy & merit
     child_array[0]->GetPhenotype().SetEnergy(child_energy);
     merit_array[0] = child_array[0]->GetPhenotype().ConvertEnergyToMerit(child_array[0]->GetPhenotype().GetStoredEnergy());
+		if(merit_array[0].GetDouble() <= 0.0) {  // do not allow zero merit
+			delete child_array[0];  // MAKE SURE THIS GETS DONE! Otherwise, memory leak.	
+			child_array.Resize(0);
+			merit_array.Resize(0);
+			return false;
+		}
   } else {
     merit_array[0] = parent.GetPhenotype().GetMerit();
   }

Modified: branches/interrupt/source/main/cDeme.cc
===================================================================
--- branches/interrupt/source/main/cDeme.cc	2009-06-25 21:00:03 UTC (rev 3339)
+++ branches/interrupt/source/main/cDeme.cc	2009-06-25 21:17:10 UTC (rev 3340)
@@ -36,6 +36,22 @@
 #include "cOrgMovementPredicate.h"
 #include "cDemePredicate.h"
 
+/*! Constructor
+ */
+cDeme::cDeme() : _id(0), width(0), replicateDeme(false), treatable(false), cur_birth_count(0), last_birth_count(0), cur_org_count(0), last_org_count(0), injected_count(0), birth_count_perslot(0),
+_age(0), generation(0), total_org_energy(0.0),
+time_used(0), gestation_time(0), cur_normalized_time_used(0.0), last_normalized_time_used(0.0), 
+MSG_sendFailed(0), MSG_dropped(0), MSG_SuccessfullySent(0), MSG_sent(0), energyInjectedIntoOrganisms(0.0), energyRemainingInDemeAtReplication(0.0), total_energy_testament(0.0),
+eventsTotal(0), eventsKilled(0), eventsKilledThisSlot(0), eventKillAttempts(0), eventKillAttemptsThisSlot(0),
+consecutiveSuccessfulEventPeriods(0), sleeping_count(0), nextAvailBoundary(0),
+avg_founder_generation(0.0), generations_per_lifetime(0.0),
+deme_resource_count(0), m_germline_genotype_id(0), points(0), migrations_out(0), migrations_in(0), suicides(0), m_network(0) {
+}
+
+cDeme::~cDeme() {
+	if(m_network) delete m_network;
+}
+
 void cDeme::Setup(int id, const tArray<int> & in_cells, int in_width, cWorld* world)
 {
   _id = id;
@@ -236,6 +252,17 @@
   ++_age;
 }
 
+
+/*! Called when an organism living in a cell in this deme is about to be killed.
+ 
+ This method is called from cPopulation::KillOrganism().
+ */
+void cDeme::OrganismDeath(cPopulationCell& cell) {
+	// Clean up this deme's network, if we have one.
+	if(IsNetworkInitialized()) { m_network->OrganismDeath(cell); }
+}
+
+
 void cDeme::Reset(bool resetResources, double deme_energy)
 {
   double additional_resource = 0.0;
@@ -281,15 +308,15 @@
 
 	//reset remaining deme predicates
   for (int i = 0; i < deme_pred_list.Size(); i++) {
-    (*deme_pred_list[i]).Reset();
+    deme_pred_list[i]->Reset();
   }	
   //reset remaining message predicates
   for (int i = 0; i < message_pred_list.Size(); i++) {
-    (*message_pred_list[i]).Reset();
+    message_pred_list[i]->Reset();
   }
   //reset remaining message predicates
   for (int i = 0; i < movement_pred_list.Size(); i++) {
-    (*movement_pred_list[i]).Reset();
+    movement_pred_list[i]->Reset();
   }
   
 	static const int geometry = m_world->GetConfig().WORLD_GEOMETRY.Get();
@@ -305,6 +332,11 @@
   if (resetResources) {
     deme_resource_count.ReinitializeResources(additional_resource);
   }
+	// Instead of polluting cDemeNetwork with Resets, we're just going to delete it,
+	// and go ahead and rely on lazy initialization to fill this back in.
+	if(m_network) {
+		delete m_network;
+	}
 }
 
 
@@ -854,6 +886,38 @@
   
 } //End AddPheromone()
 
+double cDeme::GetSpatialResource(int rel_cellid, int resource_id) const
+{
+  assert(rel_cellid >= 0);
+  assert(rel_cellid < GetSize());
+  assert(resource_id >= 0);
+  assert(resource_id < deme_resource_count.GetSize());
+  
+  tArray<double> cell_resources = deme_resource_count.GetCellResources(rel_cellid);
+  return cell_resources[resource_id];
+}
+
+void cDeme::AdjustSpatialResource(int rel_cellid, int resource_id, double amount)
+{
+  assert(rel_cellid >= 0);
+  assert(rel_cellid < GetSize());
+  assert(resource_id >= 0);
+  assert(resource_id < deme_resource_count.GetSize());
+  
+  tArray<double> res_change;
+  res_change.Resize(deme_resource_count.GetSize(), 0);
+  res_change[resource_id] = amount;
+  
+  deme_resource_count.ModifyCell(res_change, rel_cellid);
+  
+}
+
+void cDeme::AdjustResource(int resource_id, double amount)
+{
+  double new_amount = deme_resource_count.Get(resource_id) + amount;
+  deme_resource_count.Set(resource_id, new_amount);
+}
+
 int cDeme::GetSlotFlowRate() const {
   vector<pair<int, int> >::const_iterator iter = event_slot_end_points.begin();
   while(iter != event_slot_end_points.end()) {
@@ -882,3 +946,11 @@
   return false;
   
 } //End cDeme::IsTreatableAtAge()
+
+
+/*! Retrieve the network object, initializing it as needed.
+ */
+cDemeNetwork& cDeme::GetNetwork() {
+	InitNetworkCreation(); 
+	return *m_network; 
+}

Modified: branches/interrupt/source/main/cDeme.h
===================================================================
--- branches/interrupt/source/main/cDeme.h	2009-06-25 21:00:03 UTC (rev 3339)
+++ branches/interrupt/source/main/cDeme.h	2009-06-25 21:17:10 UTC (rev 3340)
@@ -31,6 +31,7 @@
 #include "cGermline.h"
 #include "cPhenotype.h"
 #include "cMerit.h"
+#include "cDemeNetwork.h"
 #include "tArray.h"
 #include "tVector.h"
 #include "cResourceCount.h"
@@ -142,18 +143,12 @@
 	unsigned int migrations_in;
 	unsigned int suicides;
 	
-  
 public:
-  cDeme() : _id(0), width(0), replicateDeme(false), treatable(false), cur_birth_count(0), last_birth_count(0), cur_org_count(0), last_org_count(0), injected_count(0), birth_count_perslot(0),
-            _age(0), generation(0), total_org_energy(0.0),
-            time_used(0), gestation_time(0), cur_normalized_time_used(0.0), last_normalized_time_used(0.0), 
-						MSG_sendFailed(0), MSG_dropped(0), MSG_SuccessfullySent(0), MSG_sent(0),
-						energyInjectedIntoOrganisms(0.0), energyRemainingInDemeAtReplication(0.0), total_energy_testament(0.0),
-            eventsTotal(0), eventsKilled(0), eventsKilledThisSlot(0), eventKillAttempts(0), eventKillAttemptsThisSlot(0),
-            consecutiveSuccessfulEventPeriods(0), sleeping_count(0), nextAvailBoundary(0),
-            avg_founder_generation(0.0), generations_per_lifetime(0.0),
-            deme_resource_count(0), m_germline_genotype_id(0), points(0), migrations_out(0), migrations_in(0), suicides(0){ ; }
-  ~cDeme() { ; }
+	//! Constructor.
+  cDeme();
+	
+	//! Destructor.
+  ~cDeme();
 
   void Setup(int id, const tArray<int>& in_cells, int in_width = -1, cWorld* world = NULL);
 
@@ -209,6 +204,7 @@
   void AddTreatmentAge(const int age) { treatment_ages.insert(age); }
   bool IsTreatableAtAge(const int age);
   bool IsTreatableNow() { return IsTreatableAtAge(_age); }
+  std::set<int> GetTreatmentAges() const { return treatment_ages; }
 
   int GetSlotFlowRate() const;
   int GetEventsTotal() const { return eventsTotal; }
@@ -256,11 +252,15 @@
   // -= Update support =-
   //! Called once, at the end of every update.
   void ProcessUpdate();
-  /*! Returns the age of this deme, updates.  Age is defined as the number of 
-    updates since the last time Reset() was called. */
+  //! Returns the age of this deme in updates, where age is defined as the number of updates since the last time Reset() was called.
   int GetAge() const { return _age; }
+	//! Called when an organism living in a cell in this deme is about to be killed.
+	void OrganismDeath(cPopulationCell& cell);
   
   const cResourceCount& GetDemeResourceCount() const { return deme_resource_count; }
+  double GetSpatialResource(int rel_cellid, int resource_id) const;
+  void AdjustSpatialResource(int rel_cellid, int resource_id, double amount);
+  void AdjustResource(int resource_id, double amount);
   void SetDemeResourceCount(const cResourceCount in_res) { deme_resource_count = in_res; }
   void ResizeSpatialGrids(const int in_x, const int in_y) { deme_resource_count.ResizeSpatialGrids(in_x, in_y); }
   void ModifyDemeResCount(const tArray<double> & res_change, const int absolute_cell_id);
@@ -370,6 +370,18 @@
 	int getThenIncNextAvailBoundary() { return nextAvailBoundary++; }
 	int getNextAvailBoundary() const { return nextAvailBoundary; }
 
+	// -= Network creation support =-
+private:
+	//! Lazily-initialized pointer to the network creation support struct.
+	cDemeNetwork* m_network;
+
+	//! Initialize network creation support.
+	inline void InitNetworkCreation() { if(!m_network) m_network = cDemeNetwork::DemeNetworkFactory(m_world, *this); }
+	//! Test for initialization of the network.
+	inline bool IsNetworkInitialized() { return m_network != 0; }
+public:
+	//! Retrieve this deme's network.
+	cDemeNetwork& GetNetwork();
 };
 
 #endif

Copied: branches/interrupt/source/main/cDemeNetwork.cc (from rev 3300, development/source/main/cDemeNetwork.cc)
===================================================================
--- branches/interrupt/source/main/cDemeNetwork.cc	                        (rev 0)
+++ branches/interrupt/source/main/cDemeNetwork.cc	2009-06-25 21:17:10 UTC (rev 3340)
@@ -0,0 +1,60 @@
+/*
+ *  cDemeNetwork.cpp
+ *  Avida
+ *
+ *  Copyright 1999-2009 Michigan State University. All rights reserved.
+ *
+ *
+ *  This program is free software; you can redistribute it and/or
+ *  modify it under the terms of the GNU General Public License
+ *  as published by the Free Software Foundation; version 2
+ *  of the License.
+ *
+ *  This program is distributed in the hope that it will be useful,
+ *  but WITHOUT ANY WARRANTY; without even the implied warranty of
+ *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ *  GNU General Public License for more details.
+ *
+ *  You should have received a copy of the GNU General Public License
+ *  along with this program; if not, write to the Free Software
+ *  Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
+ *
+ */
+
+#include "defs.h" // Must be first.
+#include "cDeme.h"
+#include "cDemeNetwork.h"
+#include "cWorld.h"
+#include "cWorldDriver.h"
+// Conditional includes (these use the BGL).
+#if BOOST_IS_AVAILABLE
+#include "cDemeTopologyNetwork.h"
+#endif
+
+/*! Creates a cDemeNetwork object.
+ 
+ WARNING: This method throws an exception if BOOST_IS_AVAILABLE is not 1, as this
+ indicates at *least* a configuration error.
+ 
+ WARNING: The returned pointer is owned by the caller (you're responsible for deleting it)!
+ */
+cDemeNetwork* cDemeNetwork::DemeNetworkFactory(cWorld* world, cDeme& deme) {
+#if BOOST_IS_AVAILABLE
+	switch(world->GetConfig().DEME_NETWORK_TYPE.Get()) {
+		case cDemeNetwork::TOPOLOGY: {
+			return new cDemeTopologyNetwork(world, deme);
+		}
+		default: {
+			world->GetDriver().RaiseFatalException(-1, "Unrecognized network type in cDemeNetwork::DemeNetworkFactory().");
+		}
+	}	
+#else
+	world->GetDriver().RaiseFatalException(-1, "cDemeNetwork requires Boost; if Boost *is* available, #define BOOST_IS_AVAILABLE in defs.h, and (possibly) update your include path.");
+#endif
+	return 0; // never reached, to quell warnings only.
+}
+
+/*! Constructor.
+ */
+cDemeNetwork::cDemeNetwork(cWorld* world, cDeme& deme) : m_world(world), m_deme(deme) {
+}

Copied: branches/interrupt/source/main/cDemeNetwork.h (from rev 3300, development/source/main/cDemeNetwork.h)
===================================================================
--- branches/interrupt/source/main/cDemeNetwork.h	                        (rev 0)
+++ branches/interrupt/source/main/cDemeNetwork.h	2009-06-25 21:17:10 UTC (rev 3340)
@@ -0,0 +1,84 @@
+/*
+ *  cDemeNetwork.h
+ *  Avida
+ *
+ *  Copyright 1999-2009 Michigan State University. All rights reserved.
+ *
+ *
+ *  This program is free software; you can redistribute it and/or
+ *  modify it under the terms of the GNU General Public License
+ *  as published by the Free Software Foundation; version 2
+ *  of the License.
+ *
+ *  This program is distributed in the hope that it will be useful,
+ *  but WITHOUT ANY WARRANTY; without even the implied warranty of
+ *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ *  GNU General Public License for more details.
+ *
+ *  You should have received a copy of the GNU General Public License
+ *  along with this program; if not, write to the Free Software
+ *  Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
+ *
+ */
+
+#ifndef cDemeNetwork_h
+#define cDemeNetwork_h
+
+class cDeme;
+class cWorld;
+class cPopulationCell;
+
+/*! Provides the organisms in a deme with a shared network object.
+ 
+ The idea here is that the organisms in a deme cooperate to construct a network that
+ meets certain criteria.  As of this writing, there's only a single "type" of network
+ that can be manipulated in this way, but others are in the works.
+ 
+ This can be loosely described as "cooperative construction," but the term "network
+ creation" also applies.  See~\cite{knoester2008cooperative} for more details.
+ 
+ Oh - Because this abstraction relies heavily upon the Boost Graph Library (BGL), we play
+ some tricks so that we don't require that all Avida developers have Boost.  If
+ you want to use cDemeNetwork, either change the #define for #define BOOST_IS_AVAILABLE over in
+ defs.h, alter your environment, or change your build settings.  And you actually need
+ Boost installed, of course (you'll probably also need to update your include path).
+ 
+ Because of the different types of networks that are available, there's a factory
+ method, cDemeNetwork::DemeNetworkFactory() that creates cDemeNetworks.
+ */
+class cDemeNetwork {
+public:
+	/*! Available network types.
+	 
+	 TOPOLOGY: Original network-creation approach; each cell is a node, organisms connect to
+	 neighboring cells.  The network's performance is based on its structure (evaluated as a graph).
+	 */
+	enum NetworkType { TOPOLOGY };
+
+	//! Factory method, the only way to create a deme network (pointer is owned by the caller).
+	static cDemeNetwork* DemeNetworkFactory(cWorld* world, cDeme& deme);
+	
+	//! Destructor.
+	virtual ~cDemeNetwork() { }
+
+	//! Called at the end of every update.
+	virtual void ProcessUpdate() = 0;
+
+	//! Connect u->v with weight w.
+	virtual void Connect(cPopulationCell& u, cPopulationCell& v, double w=0.0) = 0;
+	
+	//! Called when the organism living in cell u dies.
+	virtual void OrganismDeath(cPopulationCell& u) = 0;
+	
+	//! Returns a network-defined fitness.
+	virtual double Fitness() const = 0;
+
+protected:
+	//! Constructor, called by derived classes only.
+	cDemeNetwork(cWorld* world, cDeme& deme);
+	
+	cWorld* m_world; //!< The world.
+	cDeme& m_deme; //!< The owning deme.
+};
+
+#endif

Copied: branches/interrupt/source/main/cDemeNetworkUtils.h (from rev 3300, development/source/main/cDemeNetworkUtils.h)
===================================================================
--- branches/interrupt/source/main/cDemeNetworkUtils.h	                        (rev 0)
+++ branches/interrupt/source/main/cDemeNetworkUtils.h	2009-06-25 21:17:10 UTC (rev 3340)
@@ -0,0 +1,172 @@
+/*
+ *  cDemeNetworkUtils.h
+ *  Avida
+ *
+ *  Copyright 1999-2009 Michigan State University. All rights reserved.
+ *
+ *
+ *  This program is free software; you can redistribute it and/or
+ *  modify it under the terms of the GNU General Public License
+ *  as published by the Free Software Foundation; version 2
+ *  of the License.
+ *
+ *  This program is distributed in the hope that it will be useful,
+ *  but WITHOUT ANY WARRANTY; without even the implied warranty of
+ *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ *  GNU General Public License for more details.
+ *
+ *  You should have received a copy of the GNU General Public License
+ *  along with this program; if not, write to the Free Software
+ *  Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
+ *
+ */
+
+#ifndef cDemeNetworkUtils_h
+#define cDemeNetworkUtils_h
+
+#include <boost/graph/breadth_first_search.hpp>
+#include <boost/graph/connected_components.hpp>
+#include <boost/graph/visitors.hpp>
+#include <numeric>
+#include <vector>
+
+
+//! A BGL breadth-first visitor to calculate distances between vertices.
+template <class Distance>
+class NetworkDistanceVisitor : public boost::bfs_visitor< > {
+public:
+  NetworkDistanceVisitor(Distance d) : distance(d) { }
+  template <class Graph>
+  void tree_edge(typename boost::graph_traits<Graph>::edge_descriptor e, Graph& g) {
+    typename boost::graph_traits<Graph>::vertex_descriptor u, v;
+    u = boost::source(e, g);
+    v = boost::target(e, g);
+    distance[v] = distance[u] + 1;
+  }
+	
+private:
+  Distance distance;
+};
+
+//! An ease-of-use typedef to support distance calculations.
+typedef std::vector<size_t> NetworkDistanceVector;
+
+//! An ease-of-use typedef to support distance matrices.
+typedef std::vector<NetworkDistanceVector> NetworkDistanceMatrix;  
+
+
+/*! Is the passed-in network connected?
+ */
+template <typename Network>
+bool network_is_connected(const Network& network) {
+  std::vector<int> components(boost::num_vertices(network));
+  return boost::connected_components(network, &components[0]) == 1;
+}
+
+
+/*! Are the two passed-in vertices connected?
+ */
+template <typename Network>
+bool network_2cells_connected(typename Network::vertex_descriptor u, typename Network::vertex_descriptor v, Network& network) {
+  NetworkDistanceVector dv(boost::num_vertices(network),0);
+  NetworkDistanceVisitor<size_t*> visitor(&dv[0]);
+  boost::breadth_first_search(network, u, boost::visitor(visitor));
+  
+  // If the distance from u to v is 0, there is no path.
+  return dv[v] != 0;
+}
+
+
+/*! Calculate the distances between each pair of nodes; 0 == not connected.
+ */
+template <typename Network>
+NetworkDistanceMatrix all_pairs_distances(const Network& network) {
+	NetworkDistanceMatrix distance_matrix(boost::num_vertices(network),
+                                        NetworkDistanceVector(boost::num_vertices(network), 0));
+	
+  for(size_t i=0; i<boost::num_vertices(network); ++i) {
+    NetworkDistanceVisitor<size_t*> visitor(&distance_matrix[i][0]);
+    typename Network::vertex_descriptor src = boost::vertices(network).first[i];
+    boost::breadth_first_search(network, src, boost::visitor(visitor));
+  }
+  
+  return distance_matrix;
+}
+
+
+/*! Calculate the characteristic path length of the passed-in network.  CPL is the
+ mean distance between all pairs of vertices.
+ */
+template <typename Network>
+double characteristic_path_length(const Network& network) {
+	NetworkDistanceMatrix distance_matrix = all_pairs_distances(network);
+  
+  // Mean path length from v to v'.
+  double cpl_sum=0.0;
+  for(size_t i=0; i<boost::num_vertices(network); ++i) {
+    cpl_sum += std::accumulate(distance_matrix[i].begin(), distance_matrix[i].end(), 0.0) / (boost::num_vertices(network)-1);
+  }
+  
+  return cpl_sum / boost::num_vertices(network);
+}
+
+
+/*! Calculate the diameter of the passed-in network.
+ */
+template <typename Network>
+size_t diameter(const Network& network) {
+	NetworkDistanceMatrix distance_matrix = all_pairs_distances(network);
+  
+  // Mean path length from v to v'.
+	NetworkDistanceVector max_distances;
+  for(size_t i=0; i<boost::num_vertices(network); ++i) {
+    max_distances.push_back(*std::max_element(distance_matrix[i].begin(), distance_matrix[i].end()));
+  }
+  
+  return *std::max_element(max_distances.begin(), max_distances.end());
+}
+
+
+/*! Calculate the clustering coefficient of the passed-in network.  Clustering coefficient
+ is roughly a measure of "how many of my friends are themselves friends?"
+ */
+template <typename Network>
+double clustering_coefficient(const Network& network) {
+  // For each vertex in the graph, calculate the number of edges between vertices in the neighborhood.
+  typename Network::vertex_iterator vi, vi_end;
+  std::vector<double> cluster_coeffs;
+  for(tie(vi,vi_end)=vertices(network); vi!=vi_end; ++vi) {
+    // Get the list of vertices which are in the neighborhood of vi.
+    typedef typename Network::adjacency_iterator adjacency_iterator;
+    std::pair<adjacency_iterator, adjacency_iterator> adjacent = boost::adjacent_vertices(*vi, network);
+    typedef std::set<typename Network::vertex_descriptor> neighborhood;
+    neighborhood neighbors;
+    for(; adjacent.first!=adjacent.second; ++adjacent.first) {
+      neighbors.insert(*adjacent.first);
+    }
+    
+    if(neighbors.size() > 1) {
+      // Now, count the edges between vertices in the neighborhood.
+      unsigned int neighborhood_edge_count=0;
+      for(typename neighborhood::iterator i=neighbors.begin(); i!=neighbors.end(); ++i) {
+        typedef typename Network::out_edge_iterator out_edge_iterator;
+        std::pair<out_edge_iterator,out_edge_iterator> oe = out_edges(*i,network);
+        for(; oe.first!=oe.second; ++oe.first) {
+          if(neighbors.find(target(*oe.first,network))!=neighbors.end()) {
+            ++neighborhood_edge_count;
+          }
+        }
+      }
+      neighborhood_edge_count /= 2;
+      cluster_coeffs.push_back((double)neighborhood_edge_count / (neighbors.size()*(neighbors.size()-1)/2));
+    } else {
+      // This used to be 1.0... but, if our neighborhood size is <1, there are zero edges out of a possible 0.
+      cluster_coeffs.push_back(0.0);
+    }
+  }
+  
+  // Clustering coefficient:
+  return std::accumulate(cluster_coeffs.begin(), cluster_coeffs.end(), 0.0) / cluster_coeffs.size();
+}
+
+#endif

Copied: branches/interrupt/source/main/cDemeTopologyNetwork.cc (from rev 3300, development/source/main/cDemeTopologyNetwork.cc)
===================================================================
--- branches/interrupt/source/main/cDemeTopologyNetwork.cc	                        (rev 0)
+++ branches/interrupt/source/main/cDemeTopologyNetwork.cc	2009-06-25 21:17:10 UTC (rev 3340)
@@ -0,0 +1,141 @@
+/*
+ *  cDemeTopologyNetwork.cc
+ *  Avida
+ *
+ *  Copyright 1999-2009 Michigan State University. All rights reserved.
+ *
+ *
+ *  This program is free software; you can redistribute it and/or
+ *  modify it under the terms of the GNU General Public License
+ *  as published by the Free Software Foundation; version 2
+ *  of the License.
+ *
+ *  This program is distributed in the hope that it will be useful,
+ *  but WITHOUT ANY WARRANTY; without even the implied warranty of
+ *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ *  GNU General Public License for more details.
+ *
+ *  You should have received a copy of the GNU General Public License
+ *  along with this program; if not, write to the Free Software
+ *  Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
+ *
+ */
+
+#include "defs.h" // Must be first.
+#if BOOST_IS_AVAILABLE
+#include "cDemeTopologyNetwork.h"
+#include "cDemeNetworkUtils.h"
+#include "cDeme.h"
+#include "cStats.h"
+#include "cWorld.h"
+#include "cWorldDriver.h"
+
+/*! Constructor.
+ */
+cDemeTopologyNetwork::cDemeTopologyNetwork(cWorld* world, cDeme& deme) : cDemeNetwork(world, deme) {
+}
+
+/*! Connect u->v with weight w.
+ */
+void cDemeTopologyNetwork::Connect(cPopulationCell& u, cPopulationCell& v, double w) {
+}
+
+/*! Returns the fitness of the network, as determined by the DEME_NETWORK_TOPOLOGY_FITNESS config option.
+ */
+double cDemeTopologyNetwork::Fitness() const {
+	// Yay, stats tracking.
+	m_world->GetStats().NetworkTopology(m_network);
+
+	// Are we requiring connectedness before fitness is calculated?
+	if(m_world->GetConfig().DEME_NETWORK_REQUIRES_CONNECTEDNESS.Get()) {
+		// Short-circuit if we don't have all the vertices (cheap!):
+		if((boost::num_vertices(m_network) < (size_t)m_deme.GetSize())
+			 // and then check for connectedness:
+			 || !network_is_connected(m_network)) {
+			return 0.0;
+		}
+	}
+	
+	// We're going to arbitrarily define the maximum number of edges that can exist
+	// in this network to be the number of edges that would be in a fully-connected
+	// network of m_deme.GetSize() number of vertices (Euler's formula).
+	double max_edges = m_deme.GetSize() * (m_deme.GetSize()-1) / 2;
+	
+	// Ok, calculate fitness.
+	switch(m_world->GetConfig().DEME_NETWORK_TOPOLOGY_FITNESS.Get()) {
+		case MIN_SIZE: {
+			return pow(max_edges - boost::num_edges(m_network) + 1, 2);
+		}
+		case MIN_DIAMETER: {
+			// Note: we don't need a +1 here (max diameter is less than num_vertices).
+			return pow((double)boost::num_vertices(m_network) - diameter(m_network), 2);
+		}
+		case MIN_CPL: {
+			return pow(0.75*boost::num_vertices(m_network) - characteristic_path_length(m_network) + 1, 2);
+		}        
+		case MAX_CC: {
+			return pow(100.0*clustering_coefficient(m_network) + 1, 2);
+		}
+		case MIN_CC: {
+			return pow(100.0 - 100.0*clustering_coefficient(m_network) + 1, 2);
+		}
+		case TGT_CC: {
+			double coeff = clustering_coefficient(m_network);
+			double target_coeff = 0.5;
+			
+			// Want to reward for absolute "closeness" to target.
+			// matlab: x=0:0.001:1; target=0.5; plot(x, (power(1/100,abs(target-x))*100).^2)
+			return pow(pow(0.01, abs(target_coeff - coeff))*100, 2);
+		}
+		case CPL_AND_EDGES_1: {
+			// Replicate demes that are connected, and set the merit based on a combination of
+			// characteristic path length and edge count (1):
+			// \[Merit=\Big((CPL_{max}-CPL_{mean}+1) * (L_{max}-L(G)+1)\Big)^2\]
+			return pow((0.75*boost::num_vertices(m_network) - characteristic_path_length(m_network) + 1)
+															 * (max_edges - boost::num_edges(m_network) + 1), 2);
+		}
+		case CPL_AND_EDGES_2: {
+			// Replicate demes that are connected, and set the merit based on a combination of
+			// characteristic path length and edge count (2):
+			// \[Merit=(CPL_{max}-CPL_{mean}+1)^2 + (L_{max}-L(G)+1)^2\]
+			return pow(0.75*boost::num_vertices(m_network) - characteristic_path_length(m_network) + 1, 2)
+													 + pow(max_edges - boost::num_edges(m_network) + 1.0, 2);
+		}
+		case CPL_AND_EDGES_3: {
+			// Replicate demes that are connected, and set the merit based on a combination of
+			// characteristic path length and edge count, where each is normalized (3):
+			// \[Merit=\Big(100*\frac{CPL_{max}-CPL_{mean}}{CPL_{max}} + 100*\frac{L_{max}-L(G)}{L_{max}}+1\Big)^2\]
+			return pow(100*(0.75*boost::num_vertices(m_network)
+											- characteristic_path_length(m_network)) / (0.75*boost::num_vertices(m_network))
+								 + 100*((max_edges - boost::num_edges(m_network)) / max_edges)
+								 + 1
+								 , 2);
+		}
+		case CPL_AND_EDGES_LADDER_1: {
+			// Replicate demes that are connected, and set the merit to a ladder fitness function 
+			// based on CPL and edge count (min edges -> CPL) (~5% error):
+			double source_germline_merit = pow(max_edges - boost::num_edges(m_network) + 1.0, 2);
+			// ~5% error margin...
+			if(boost::num_edges(m_network) <= (boost::num_vertices(m_network) + 2)) {
+				source_germline_merit += pow(0.75*boost::num_vertices(m_network) - characteristic_path_length(m_network) + 1, 2);
+			}
+			return source_germline_merit;
+		}
+		case CPL_AND_EDGES_LADDER_2: {
+			// Replicate demes that are connected, and set the merit to a ladder fitness function 
+			// based on CPL and edge count (min CPL -> edges) (error margin):
+			double cpl = characteristic_path_length(m_network);
+			double source_germline_merit = pow(0.75*boost::num_vertices(m_network) - cpl + 1, 2);
+			if((cpl > 3.25) && (cpl < 3.75)) {
+				source_germline_merit += pow(max_edges - boost::num_edges(m_network) + 1.0, 2);
+			}
+			return source_germline_merit;
+		}
+		default: {
+			m_world->GetDriver().RaiseFatalException(-1, "Unrecognized network fitness type in cDemeTopologyNetwork::Fitness().");
+		}
+	}
+	return 0.0;
+}
+
+#endif

Copied: branches/interrupt/source/main/cDemeTopologyNetwork.h (from rev 3300, development/source/main/cDemeTopologyNetwork.h)
===================================================================
--- branches/interrupt/source/main/cDemeTopologyNetwork.h	                        (rev 0)
+++ branches/interrupt/source/main/cDemeTopologyNetwork.h	2009-06-25 21:17:10 UTC (rev 3340)
@@ -0,0 +1,94 @@
+/*
+ *  cDemeTopologyNetwork.h
+ *  Avida
+ *
+ *  Copyright 1999-2009 Michigan State University. All rights reserved.
+ *
+ *
+ *  This program is free software; you can redistribute it and/or
+ *  modify it under the terms of the GNU General Public License
+ *  as published by the Free Software Foundation; version 2
+ *  of the License.
+ *
+ *  This program is distributed in the hope that it will be useful,
+ *  but WITHOUT ANY WARRANTY; without even the implied warranty of
+ *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ *  GNU General Public License for more details.
+ *
+ *  You should have received a copy of the GNU General Public License
+ *  along with this program; if not, write to the Free Software
+ *  Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
+ *
+ */
+
+#ifndef cDemeTopologyNetwork_h
+#define cDemeTopologyNetwork_h
+
+/* THIS HEADER REQUIRES BOOST */
+#include <boost/graph/adjacency_list.hpp>
+#include <map>
+#include <string>
+#include <utility>
+#include <vector>
+
+#include "cDemeNetwork.h"
+
+class cDeme;
+class cWorld;
+class cPopulationCell;
+
+/*!
+ */
+class cDemeTopologyNetwork : public cDemeNetwork {
+public:	
+	enum FitnessType {
+		MIN_SIZE,
+		MIN_DIAMETER,
+		MIN_CPL,
+		MAX_CC,
+		MIN_CC,
+		TGT_CC,
+		CPL_AND_EDGES_1,
+		CPL_AND_EDGES_2,
+		CPL_AND_EDGES_3,
+		CPL_AND_EDGES_LADDER_1,
+		CPL_AND_EDGES_LADDER_2
+	};
+	
+	//! The internal vertex properties.
+	struct vertex_properties {
+		vertex_properties() { }
+		vertex_properties(std::pair<int,int> pos, int cell_id) : _x(pos.first), _y(pos.second), _cell_id(cell_id) { }
+		int _x, _y, _cell_id;
+	};
+	
+  //! An ease-of-use typedef to support the distributed construction of a network.
+  typedef boost::adjacency_list<boost::setS, boost::vecS, boost::undirectedS, vertex_properties> Network;
+  
+  //! A map of cell IDs to vertex descriptors.
+  typedef std::map<int, Network::vertex_descriptor> CellVertexMap;
+  
+  //! Map of cell IDs to counts.
+  typedef std::map<int, unsigned int> CellCountMap;
+  
+	//! Constructor.
+	cDemeTopologyNetwork(cWorld* world, cDeme& deme);
+	
+	//! Called at the end of every update.
+	virtual void ProcessUpdate() { }
+	
+	//! Connect u->v with weight w.
+	virtual void Connect(cPopulationCell& u, cPopulationCell& v, double w=0.0);
+	
+	//! Called when the organism living in cell u dies.
+	virtual void OrganismDeath(cPopulationCell& u) { }
+	
+	//! Returns a network-defined fitness.
+	virtual double Fitness() const;
+
+protected:
+	Network m_network; //!< Underlying network model.
+	CellVertexMap m_cv; //!< Map of cell ids to vertex descriptors.
+};
+
+#endif

Modified: branches/interrupt/source/main/cMutationRates.cc
===================================================================
--- branches/interrupt/source/main/cMutationRates.cc	2009-06-25 21:00:03 UTC (rev 3339)
+++ branches/interrupt/source/main/cMutationRates.cc	2009-06-25 21:17:10 UTC (rev 3340)
@@ -46,6 +46,12 @@
   divide.divide_mut_prob = world->GetConfig().DIVIDE_MUT_PROB.Get();
   divide.divide_ins_prob = world->GetConfig().DIVIDE_INS_PROB.Get();
   divide.divide_del_prob = world->GetConfig().DIVIDE_DEL_PROB.Get();
+  
+  divide.divide_poisson_mut_mean = world->GetConfig().DIVIDE_POISSON_MUT_MEAN.Get();
+  divide.divide_poisson_ins_mean = world->GetConfig().DIVIDE_POISSON_INS_MEAN.Get();
+  divide.divide_poisson_del_mean = world->GetConfig().DIVIDE_POISSON_DEL_MEAN.Get();
+  divide.divide_poisson_slip_mean = world->GetConfig().DIVIDE_POISSON_SLIP_MEAN.Get();
+
   divide.divide_uniform_prob = world->GetConfig().DIVIDE_UNIFORM_PROB.Get();
   divide.divide_slip_prob = world->GetConfig().DIVIDE_SLIP_PROB.Get();
   
@@ -76,6 +82,12 @@
   divide.divide_mut_prob = 0.0;
   divide.divide_ins_prob = 0.0;
   divide.divide_del_prob = 0.0;
+  
+  divide.divide_poisson_mut_mean = 0.0;
+  divide.divide_poisson_ins_mean = 0.0;
+  divide.divide_poisson_del_mean = 0.0; 
+  divide.divide_poisson_slip_mean = 0.0; 
+
   divide.divide_uniform_prob = 0.0;
   divide.divide_slip_prob = 0.0;
   
@@ -106,6 +118,12 @@
   divide.divide_mut_prob = in_muts.divide.divide_mut_prob;
   divide.divide_ins_prob = in_muts.divide.divide_ins_prob;
   divide.divide_del_prob = in_muts.divide.divide_del_prob;
+  
+  divide.divide_poisson_mut_mean = in_muts.divide.divide_poisson_mut_mean;
+  divide.divide_poisson_ins_mean = in_muts.divide.divide_poisson_ins_mean;
+  divide.divide_poisson_del_mean = in_muts.divide.divide_poisson_del_mean;
+  divide.divide_poisson_slip_mean = in_muts.divide.divide_poisson_slip_mean;
+
   divide.divide_uniform_prob = in_muts.divide.divide_uniform_prob;
   divide.divide_slip_prob = in_muts.divide.divide_slip_prob;
   

Modified: branches/interrupt/source/main/cMutationRates.h
===================================================================
--- branches/interrupt/source/main/cMutationRates.h	2009-06-25 21:00:03 UTC (rev 3339)
+++ branches/interrupt/source/main/cMutationRates.h	2009-06-25 21:17:10 UTC (rev 3340)
@@ -60,6 +60,10 @@
     double divide_mut_prob;     // Max one per divide
     double divide_ins_prob;     // Max one per divide
     double divide_del_prob;     // Max one per divide
+    double divide_poisson_mut_mean;     // Allows multiple with constant genomic rate
+    double divide_poisson_ins_mean;     // Allows multiple with constant genomic rate
+    double divide_poisson_del_mean;     // Allows multiple with constant genomic rate
+    double divide_poisson_slip_mean;     // Allows multiple with constant genomic rate
     double divide_slip_prob;     // Max one per divide
     double divide_uniform_prob;
     double parent_mut_prob;
@@ -105,6 +109,16 @@
   bool TestDivideMut(cAvidaContext& ctx) const { return ctx.GetRandom().P(divide.divide_mut_prob); }
   bool TestDivideIns(cAvidaContext& ctx) const { return ctx.GetRandom().P(divide.divide_ins_prob); }
   bool TestDivideDel(cAvidaContext& ctx) const { return ctx.GetRandom().P(divide.divide_del_prob); }
+  
+  unsigned int NumDividePoissonMut(cAvidaContext& ctx) const 
+    { return (divide.divide_poisson_mut_mean == 0.0) ? 0 : ctx.GetRandom().GetRandPoisson(divide.divide_poisson_mut_mean); }
+  unsigned int NumDividePoissonIns(cAvidaContext& ctx) const 
+    { return (divide.divide_poisson_ins_mean == 0.0) ? 0 : ctx.GetRandom().GetRandPoisson(divide.divide_poisson_ins_mean); }
+  unsigned int NumDividePoissonDel(cAvidaContext& ctx) const 
+    { return (divide.divide_poisson_del_mean == 0.0) ? 0 : ctx.GetRandom().GetRandPoisson(divide.divide_poisson_del_mean); }
+ unsigned int NumDividePoissonSlip(cAvidaContext& ctx) const 
+    { return (divide.divide_poisson_slip_mean == 0.0) ? 0 : ctx.GetRandom().GetRandPoisson(divide.divide_poisson_slip_mean); }
+
   bool TestDivideSlip(cAvidaContext& ctx) const { return ctx.GetRandom().P(divide.divide_slip_prob); }
   bool TestDivideUniform(cAvidaContext& ctx) const
   {

Modified: branches/interrupt/source/main/cOrganism.h
===================================================================
--- branches/interrupt/source/main/cOrganism.h	2009-06-25 21:00:03 UTC (rev 3339)
+++ branches/interrupt/source/main/cOrganism.h	2009-06-25 21:17:10 UTC (rev 3340)
@@ -337,6 +337,12 @@
   bool TestDivideMut(cAvidaContext& ctx) const { return m_mut_rates.TestDivideMut(ctx); }
   bool TestDivideIns(cAvidaContext& ctx) const { return m_mut_rates.TestDivideIns(ctx); }
   bool TestDivideDel(cAvidaContext& ctx) const { return m_mut_rates.TestDivideDel(ctx); }
+  
+  unsigned int NumDividePoissonMut(cAvidaContext& ctx) const { return m_mut_rates.NumDividePoissonMut(ctx); }
+  unsigned int NumDividePoissonIns(cAvidaContext& ctx) const { return m_mut_rates.NumDividePoissonIns(ctx); }
+  unsigned int NumDividePoissonDel(cAvidaContext& ctx) const { return m_mut_rates.NumDividePoissonDel(ctx); }
+  unsigned int NumDividePoissonSlip(cAvidaContext& ctx) const { return m_mut_rates.NumDividePoissonSlip(ctx); }
+
   bool TestDivideUniform(cAvidaContext& ctx) const { return m_mut_rates.TestDivideUniform(ctx); }
   bool TestDivideSlip(cAvidaContext& ctx) const { return m_mut_rates.TestDivideSlip(ctx); } 
   

Modified: branches/interrupt/source/main/cPopulation.cc
===================================================================
--- branches/interrupt/source/main/cPopulation.cc	2009-06-25 21:00:03 UTC (rev 3339)
+++ branches/interrupt/source/main/cPopulation.cc	2009-06-25 21:17:10 UTC (rev 3340)
@@ -353,6 +353,26 @@
   // Loop through choosing the later placement of each child in the population.
   bool parent_alive = true;  // Will the parent live through this process?
   for (int i = 0; i < child_array.GetSize(); i++) {
+/*		
+		THIS code will remove zero merit orgnaisms, thus never putting them into the scheduler.
+		WARNING: uncommenting this code will break consistancy, but will generalize the solution.
+		Currently, only asexual organisms that use the energy model are removed when they have zero merit.
+		If this code gets added then remove the "if(merit_array[0].GetDouble() <= 0.0)" block from cBirthChamber::DoAsexBirth, 
+			does not break consistancy for test energy_deme_level_res
+ 
+		if(merit_array[i].GetDouble() <= 0.0) {
+			// no weaklings!
+			if(child_array.GetSize() > 1) {
+				child_array.Swap(i, child_array.GetSize()-1);
+				child_array = child_array.Subset(0, child_array.GetSize()-2);
+			} else {
+				child_array.ResizeClear(0);
+				break;
+			}
+			--i;
+			continue;
+		}
+	*/	
     target_cells[i] = PositionChild(parent_cell, m_world->GetConfig().ALLOW_PARENT.Get()).GetID();
     
     // If we replaced the parent, make a note of this.
@@ -410,43 +430,49 @@
 		
   // If we're not about to kill the parent, do some extra work on it.
   if (parent_alive == true) {
-    // Reset inputs and re-calculate merit if required
-    if (m_world->GetConfig().RESET_INPUTS_ON_DIVIDE.Get() > 0){
-      environment.SetupInputs(ctx, parent_cell.m_inputs);
-      
-      int pc_phenotype = m_world->GetConfig().PRECALC_PHENOTYPE.Get();
-      if (pc_phenotype) {
-        cCPUTestInfo test_info;
-        cTestCPU* test_cpu = m_world->GetHardwareManager().CreateTestCPU();
-        test_info.UseManualInputs(parent_cell.GetInputs()); // Test using what the environment will be
-        test_cpu->TestGenome(ctx, test_info, parent_organism->GetHardware().GetMemory()); // Use the true genome
-        if (pc_phenotype & 1) { // If we must update the merit
-          parent_phenotype.SetMerit(test_info.GetTestPhenotype().GetMerit());
-        }
-        if (pc_phenotype & 2) {   // If we must update the gestation time
-          parent_phenotype.SetGestationTime(test_info.GetTestPhenotype().GetGestationTime());
-        }
-        if (pc_phenotype & 4) {   // If we must update the last instruction counts
-					parent_phenotype.SetTestCPUInstCount(test_info.GetTestPhenotype().GetLastInstCount());
+		if(parent_phenotype.GetMerit().GetDouble() <= 0.0) {
+			// no weakling parents either!			
+			parent_organism->GetPhenotype().SetToDie();
+			parent_alive = false;
+		}	else {
+			// Reset inputs and re-calculate merit if required
+			if (m_world->GetConfig().RESET_INPUTS_ON_DIVIDE.Get() > 0){
+				environment.SetupInputs(ctx, parent_cell.m_inputs);
+				
+				int pc_phenotype = m_world->GetConfig().PRECALC_PHENOTYPE.Get();
+				if (pc_phenotype) {
+					cCPUTestInfo test_info;
+					cTestCPU* test_cpu = m_world->GetHardwareManager().CreateTestCPU();
+					test_info.UseManualInputs(parent_cell.GetInputs()); // Test using what the environment will be
+					test_cpu->TestGenome(ctx, test_info, parent_organism->GetHardware().GetMemory()); // Use the true genome
+					if (pc_phenotype & 1) { // If we must update the merit
+						parent_phenotype.SetMerit(test_info.GetTestPhenotype().GetMerit());
+					}
+					if (pc_phenotype & 2) {   // If we must update the gestation time
+						parent_phenotype.SetGestationTime(test_info.GetTestPhenotype().GetGestationTime());
+					}
+					if (pc_phenotype & 4) {   // If we must update the last instruction counts
+						parent_phenotype.SetTestCPUInstCount(test_info.GetTestPhenotype().GetLastInstCount());
+					}
+					parent_phenotype.SetFitness(parent_phenotype.GetMerit().CalcFitness(parent_phenotype.GetGestationTime())); // Update fitness
+					delete test_cpu;
 				}
-				parent_phenotype.SetFitness(parent_phenotype.GetMerit().CalcFitness(parent_phenotype.GetGestationTime())); // Update fitness
-        delete test_cpu;
-      }
-    }
-    AdjustSchedule(parent_cell, parent_phenotype.GetMerit());
-    
-    // In a local run, face the child toward the parent. 
-    const int birth_method = m_world->GetConfig().BIRTH_METHOD.Get();
-    if (birth_method < NUM_LOCAL_POSITION_CHILD ||
-        birth_method == POSITION_CHILD_PARENT_FACING) {
-      for (int i = 0; i < child_array.GetSize(); i++) {
-        GetCell(target_cells[i]).Rotate(parent_cell);
-      }
-    }
-    
-    // Purge the mutations since last division
-    parent_organism->OffspringGenome().GetGenome().GetMutationSteps().Clear();
-  }
+			}
+			AdjustSchedule(parent_cell, parent_phenotype.GetMerit());
+			
+			// In a local run, face the child toward the parent. 
+			const int birth_method = m_world->GetConfig().BIRTH_METHOD.Get();
+			if (birth_method < NUM_LOCAL_POSITION_CHILD ||
+					birth_method == POSITION_CHILD_PARENT_FACING) {
+				for (int i = 0; i < child_array.GetSize(); i++) {
+					GetCell(target_cells[i]).Rotate(parent_cell);
+				}
+			}
+			
+			// Purge the mutations since last division
+			parent_organism->OffspringGenome().GetGenome().GetMutationSteps().Clear();
+		}
+	}
   
   // Do any statistics on the parent that just gave birth...
   parent_genotype->AddGestationTime( parent_phenotype.GetGestationTime() );
@@ -833,6 +859,12 @@
   	organism->GetOrgInterface().UpdateResources(organism->GetRBins());
   }
   
+	// make sure the group composition is updated.
+	if(m_world->GetConfig().USE_FORM_GROUPS.Get() && organism->HasOpinion()) 
+	{
+			int opinion = organism->GetOpinion().first;
+			LeaveGroup(opinion);
+	}
   
   // Do the lineage handling
   if (m_world->GetConfig().LOG_LINEAGES.Get()) { m_world->GetClassificationManager().RemoveLineageOrganism(organism); }
@@ -840,8 +872,10 @@
   // Update count statistics...
   num_organisms--;
   
-  if (deme_array.GetSize() > 0) {
+	// Handle deme updates.
+  if(deme_array.GetSize() > 0) {
     deme_array[in_cell.GetDemeID()].DecOrgCount();
+		deme_array[in_cell.GetDemeID()].OrganismDeath(in_cell);
   }
   genotype->RemoveOrganism();
   
@@ -3884,11 +3918,11 @@
 {
   assert(step_size > 0.0);
   assert(cell_id < cell_array.GetSize());
-  
+  	
   // If cell_id is negative, no cell could be found -- stop here.
   if (cell_id < 0) return;
   
-  cPopulationCell& cell = GetCell(cell_id);
+	cPopulationCell& cell = GetCell(cell_id);
   assert(cell.IsOccupied()); // Unoccupied cell getting processor time!
   cOrganism* cur_org = cell.GetOrganism();
   

Modified: branches/interrupt/source/main/cResourceCount.cc
===================================================================
--- branches/interrupt/source/main/cResourceCount.cc	2009-06-25 21:00:03 UTC (rev 3339)
+++ branches/interrupt/source/main/cResourceCount.cc	2009-06-25 21:17:10 UTC (rev 3340)
@@ -523,3 +523,19 @@
 
   } //End going through the resources
 }
+
+int cResourceCount::GetResourceByName(cString name) const
+{
+  int result = -1;
+  
+  for(int i = 0; i < resource_name.GetSize(); i++)
+  {
+    if(resource_name[i] == name)
+    {
+      result = i;
+    }
+  }
+  
+  return result;
+  
+}

Modified: branches/interrupt/source/main/cResourceCount.h
===================================================================
--- branches/interrupt/source/main/cResourceCount.h	2009-06-25 21:00:03 UTC (rev 3339)
+++ branches/interrupt/source/main/cResourceCount.h	2009-06-25 21:17:10 UTC (rev 3340)
@@ -41,6 +41,9 @@
 #ifndef defs_h
 #include "defs.h"
 #endif
+#ifndef nGeometry_h
+#include "nGeometry.h"
+#endif
 
 class cResourceCount
 {
@@ -98,6 +101,7 @@
   const tArray<double>& GetResources() const;
   const tArray<double>& GetCellResources(int cell_id) const;
   const tArray<int>& GetResourcesGeometry() const;
+  int GetResourceGeometry(int res_id) const { return geometry[res_id]; }
   const tArray<tArray<double> >& GetSpatialRes();
   const tArray<tArray<int> >& GetCellIdLists() const { return cell_lists; }
   void Modify(const tArray<double>& res_change);
@@ -111,6 +115,8 @@
   void ReinitializeResources(double additional_resource);
   double GetInitialResourceValue(int resourceID) const { return resource_initial[resourceID]; }
   const cString& GetResName(int id) const { return resource_name[id]; }
+  bool IsSpatial(int id) const { return ((geometry[id] != nGeometry::GLOBAL) && (geometry[id] != nGeometry::PARTIAL)); }
+  int GetResourceByName(cString name) const;
 };
 
 

Modified: branches/interrupt/source/main/cStats.cc
===================================================================
--- branches/interrupt/source/main/cStats.cc	2009-06-25 21:00:03 UTC (rev 3339)
+++ branches/interrupt/source/main/cStats.cc	2009-06-25 21:17:10 UTC (rev 3340)
@@ -2595,7 +2595,7 @@
 	df.Write(shaded_20, "shaded-20 [shaded20]");
 	df.Write(shaded_10, "shaded-10 [shaded10]");
 	df.Write(shaded_0, "shaded-0 [shaded0]");
-	df.Write(high_alt, "percent-high-alt [highalt]");
+	df.Write(high_alt, "percent-high-alt  [highalt]");
 	df.Write(avg_shade, "avg-shade [avgshade]");
 	df.Endl();
 	
@@ -2614,27 +2614,43 @@
 	
 	map <int,int>::iterator itr;
 	double avg_size = 0.0;
+	double avg_size_wout_empty = 0.0;
 	double max_size = 0.0;
 	double min_size = 100000000000.0;
 	double active_groups = 0.0;
 	
 	for(itr = groups.begin();itr!=groups.end();itr++) {
-		avg_size += itr->second;
-		if (itr->second > max_size) max_size = itr->second;
-		if (itr->second < min_size) min_size = itr->second;
-		if (itr->second > 0) active_groups++;
+		double cur_size = itr->second;
+		avg_size += cur_size;
+		if (cur_size > max_size) max_size = cur_size;
+		if (cur_size < min_size) min_size = cur_size;
+		if (cur_size > 0) {
+			active_groups++;
+			avg_size_wout_empty += cur_size; 
+		}
 	}
 	
 	avg_size = avg_size / groups.size();
+	avg_size_wout_empty = avg_size_wout_empty / active_groups;
+	df.WriteTimeStamp();
+	df.Write(m_update,   "Update [update]");
 	df.Write((double)groups.size(), "number of groups [num]");
-	df.Write(avg_size, "average size of groups [avg-size]");
-	df.Write(max_size, "max size of groups [max-size]");
-	df.Write(min_size, "min size of groups [min-size]");
-	df.Write(active_groups, "active groups [act-group]");
+	df.Write(avg_size, "average size of groups [avgsize]");
+	df.Write(avg_size_wout_empty, "average size of  non-emptygroups [avgsizene]");
+	df.Write(max_size, "max size of groups [maxsize]");
+	df.Write(min_size, "min size of groups [minsize]");
+	df.Write(active_groups, "active groups [actgroup]");
 	
 	
 	df.Endl();
-
 	
 }
 
+/*! Print and reset network statistics.
+ */
+void cStats::PrintDemeNetworkData(const cString& filename) {
+  cDataFile& df = m_world->GetDataFile(filename);
+  
+  df.WriteComment("Deme network statistics");
+  df.WriteTimeStamp();
+}

Modified: branches/interrupt/source/main/cStats.h
===================================================================
--- branches/interrupt/source/main/cStats.h	2009-06-25 21:00:03 UTC (rev 3339)
+++ branches/interrupt/source/main/cStats.h	2009-06-25 21:17:10 UTC (rev 3340)
@@ -955,7 +955,18 @@
 	cDoubleSum m_perfect_match_org;
 	std::map <int, int> m_tags;
 	
-
+// -------- Deme network support --------
+private:
+public:
+	template <typename Network>
+	void NetworkTopology(const Network& network) {
+#if BOOST_IS_AVAILABLE
+#else
+//		world->GetDriver().RaiseFatalException(-1, "Cannot track network statistics without Boost in cStats::NetworkTopology().");
+#endif
+	}
+	//! Print network statistics.
+	void PrintDemeNetworkData(const cString& filename);
 };
 
 

Modified: branches/interrupt/source/tools/cProbSchedule.cc
===================================================================
--- branches/interrupt/source/tools/cProbSchedule.cc	2009-06-25 21:00:03 UTC (rev 3339)
+++ branches/interrupt/source/tools/cProbSchedule.cc	2009-06-25 21:17:10 UTC (rev 3340)
@@ -29,7 +29,7 @@
 #include "cDeme.h"
 #include "cMerit.h"
 
-// The larger merits cause problems here; things need to be re-thought out.
+// The larger merits cause problems here; avoid very large or very small merits
 
 int cProbSchedule::GetNextID()
 {

Copied: branches/interrupt/tests/energy_deme_level_res/expected (from rev 3300, development/tests/energy_deme_level_res/expected)

Copied: branches/interrupt/tests/energy_deme_level_res/expected/data (from rev 3300, development/tests/energy_deme_level_res/expected/data)

Deleted: branches/interrupt/tests/energy_deme_level_res/expected/data/average.dat
===================================================================
--- development/tests/energy_deme_level_res/expected/data/average.dat	2009-06-09 17:13:30 UTC (rev 3300)
+++ branches/interrupt/tests/energy_deme_level_res/expected/data/average.dat	2009-06-25 21:17:10 UTC (rev 3340)
@@ -1,30 +0,0 @@
-# Avida Average Data
-# Thu Jun  4 11:34:53 2009
-#  1: Update
-#  2: Merit
-#  3: Gestation Time
-#  4: Fitness
-#  5: Repro Rate?
-#  6: Size
-#  7: Copied Size
-#  8: Executed Size
-#  9: Abundance
-# 10: Proportion of organisms that gave birth in this update
-# 11: Proportion of Breed True Organisms
-# 12: Genotype Depth
-# 13: Generation
-# 14: Neutral Metric
-# 15: Lineage Label
-# 16: True Replication Rate (based on births/update, time-averaged)
-
-0 10.000000 146.000000 0.000000 0.000000 42.000000 42.000000 39.000000 1.000000 1.000000 1.000000 0.000000 0.000000 0.000000 0.000000 0.000000 
-10 3.09738 146 0.267123 0 42 42 39 4 0.25 0.25 0 2 -1.1619 0 0 
-20 1.61755 143.067 0.253012 0 42.2 40.6 36.4667 3 0.266667 0.2 0.333333 3.93333 -1.73114 0 0 
-30 1.32964 144.387 0.260206 0 42.0645 41.2903 37.7097 2.58333 0.258065 0.193548 0.419355 5.51613 -1.19629 0 0 
-40 1.2278 146.105 0.262249 0 42.0526 41.6491 38.3509 3.35294 0.298246 0.192982 0.385965 7.22807 -1.72025 0 0 
-50 1.1816 145.208 0.262503 0 42.0938 41.5729 38.2188 2.52632 0.125 0.03125 0.635417 9.05208 -2.17 0 0 
-60 1.15216 145.97 0.261533 0 42.07 41.43 38.25 2.22222 0.24 0.18 0.82 11.16 -2.37848 0 0 
-70 3.34475 147 0.265306 0 42.1429 42 39 3.5 0.285714 0.285714 0.142857 1.85714 1.7118 -1 0 
-80 1.66198 147.667 0.265239 0 42.0833 42.125 39.1667 2.4 0.25 0.0833333 0.5 3.66667 2.27846 -1 0 
-90 1.24357 147.889 0.264891 0 42.8095 42.1905 39.1746 2.42308 0.206349 0.142857 0.857143 5.33333 1.89711 -1 0 
-100 1.10318 151.167 0.256437 0 42.9917 41.8667 38.5667 2.10526 0.1 0.0416667 1.28333 7.11667 1.77786 -1 0 

Copied: branches/interrupt/tests/energy_deme_level_res/expected/data/average.dat (from rev 3300, development/tests/energy_deme_level_res/expected/data/average.dat)
===================================================================
--- branches/interrupt/tests/energy_deme_level_res/expected/data/average.dat	                        (rev 0)
+++ branches/interrupt/tests/energy_deme_level_res/expected/data/average.dat	2009-06-25 21:17:10 UTC (rev 3340)
@@ -0,0 +1,30 @@
+# Avida Average Data
+# Thu Jun  4 11:34:53 2009
+#  1: Update
+#  2: Merit
+#  3: Gestation Time
+#  4: Fitness
+#  5: Repro Rate?
+#  6: Size
+#  7: Copied Size
+#  8: Executed Size
+#  9: Abundance
+# 10: Proportion of organisms that gave birth in this update
+# 11: Proportion of Breed True Organisms
+# 12: Genotype Depth
+# 13: Generation
+# 14: Neutral Metric
+# 15: Lineage Label
+# 16: True Replication Rate (based on births/update, time-averaged)
+
+0 10.000000 146.000000 0.000000 0.000000 42.000000 42.000000 39.000000 1.000000 1.000000 1.000000 0.000000 0.000000 0.000000 0.000000 0.000000 
+10 3.09738 146 0.267123 0 42 42 39 4 0.25 0.25 0 2 -1.1619 0 0 
+20 1.61755 143.067 0.253012 0 42.2 40.6 36.4667 3 0.266667 0.2 0.333333 3.93333 -1.73114 0 0 
+30 1.32964 144.387 0.260206 0 42.0645 41.2903 37.7097 2.58333 0.258065 0.193548 0.419355 5.51613 -1.19629 0 0 
+40 1.2278 146.105 0.262249 0 42.0526 41.6491 38.3509 3.35294 0.298246 0.192982 0.385965 7.22807 -1.72025 0 0 
+50 1.1816 145.208 0.262503 0 42.0938 41.5729 38.2188 2.52632 0.125 0.03125 0.635417 9.05208 -2.17 0 0 
+60 1.15216 145.97 0.261533 0 42.07 41.43 38.25 2.22222 0.24 0.18 0.82 11.16 -2.37848 0 0 
+70 3.34475 147 0.265306 0 42.1429 42 39 3.5 0.285714 0.285714 0.142857 1.85714 1.7118 -1 0 
+80 1.66198 147.667 0.265239 0 42.0833 42.125 39.1667 2.4 0.25 0.0833333 0.5 3.66667 2.27846 -1 0 
+90 1.24357 147.889 0.264891 0 42.8095 42.1905 39.1746 2.42308 0.206349 0.142857 0.857143 5.33333 1.89711 -1 0 
+100 1.10318 151.167 0.256437 0 42.9917 41.8667 38.5667 2.10526 0.1 0.0416667 1.28333 7.11667 1.77786 -1 0 

Deleted: branches/interrupt/tests/energy_deme_level_res/expected/data/count.dat
===================================================================
--- development/tests/energy_deme_level_res/expected/data/count.dat	2009-06-09 17:13:30 UTC (rev 3300)
+++ branches/interrupt/tests/energy_deme_level_res/expected/data/count.dat	2009-06-25 21:17:10 UTC (rev 3340)
@@ -1,30 +0,0 @@
-# Avida count data
-# Thu Jun  4 11:34:53 2009
-#  1: update
-#  2: number of insts executed this update
-#  3: number of organisms
-#  4: number of different genotypes
-#  5: number of different threshold genotypes
-#  6: number of different species
-#  7: number of different threshold species
-#  8: number of different lineages
-#  9: number of births in this update
-# 10: number of deaths in this update
-# 11: number of breed true
-# 12: number of breed true organisms?
-# 13: number of no-birth organisms
-# 14: number of single-threaded organisms
-# 15: number of multi-threaded organisms
-# 16: number of modified organisms
-
-0 30 1 1 1 0 0 0 1 0 1 1 1 1 0 0 
-10 90 4 1 1 0 0 0 1 0 1 4 2 4 0 0 
-20 330 15 5 1 0 0 0 4 0 3 11 8 15 0 0 
-30 810 31 12 1 0 0 0 8 4 6 20 16 31 0 0 
-40 1470 57 17 3 0 0 0 17 9 11 42 34 57 0 0 
-50 2790 96 38 5 0 0 0 12 9 3 60 55 96 0 0 
-60 3000 100 45 9 0 0 0 24 24 18 67 58 100 0 0 
-70 150 7 2 1 0 0 0 2 0 2 6 4 7 0 0 
-80 540 24 10 2 0 0 0 6 0 2 15 13 24 0 0 
-90 1590 63 26 5 0 0 0 13 3 9 38 36 63 0 0 
-100 3300 120 57 9 0 0 0 12 2 5 67 65 120 0 0 

Copied: branches/interrupt/tests/energy_deme_level_res/expected/data/count.dat (from rev 3300, development/tests/energy_deme_level_res/expected/data/count.dat)
===================================================================
--- branches/interrupt/tests/energy_deme_level_res/expected/data/count.dat	                        (rev 0)
+++ branches/interrupt/tests/energy_deme_level_res/expected/data/count.dat	2009-06-25 21:17:10 UTC (rev 3340)
@@ -0,0 +1,30 @@
+# Avida count data
+# Thu Jun  4 11:34:53 2009
+#  1: update
+#  2: number of insts executed this update
+#  3: number of organisms
+#  4: number of different genotypes
+#  5: number of different threshold genotypes
+#  6: number of different species
+#  7: number of different threshold species
+#  8: number of different lineages
+#  9: number of births in this update
+# 10: number of deaths in this update
+# 11: number of breed true
+# 12: number of breed true organisms?
+# 13: number of no-birth organisms
+# 14: number of single-threaded organisms
+# 15: number of multi-threaded organisms
+# 16: number of modified organisms
+
+0 30 1 1 1 0 0 0 1 0 1 1 1 1 0 0 
+10 90 4 1 1 0 0 0 1 0 1 4 2 4 0 0 
+20 330 15 5 1 0 0 0 4 0 3 11 8 15 0 0 
+30 810 31 12 1 0 0 0 8 4 6 20 16 31 0 0 
+40 1470 57 17 3 0 0 0 17 9 11 42 34 57 0 0 
+50 2790 96 38 5 0 0 0 12 9 3 60 55 96 0 0 
+60 3000 100 45 9 0 0 0 24 24 18 67 58 100 0 0 
+70 150 7 2 1 0 0 0 2 0 2 6 4 7 0 0 
+80 540 24 10 2 0 0 0 6 0 2 15 13 24 0 0 
+90 1590 63 26 5 0 0 0 13 3 9 38 36 63 0 0 
+100 3300 120 57 9 0 0 0 12 2 5 67 65 120 0 0 

Deleted: branches/interrupt/tests/energy_deme_level_res/expected/data/deme_0000000_spatial_energy.m
===================================================================
--- development/tests/energy_deme_level_res/expected/data/deme_0000000_spatial_energy.m	2009-06-09 17:13:30 UTC (rev 3300)
+++ branches/interrupt/tests/energy_deme_level_res/expected/data/deme_0000000_spatial_energy.m	2009-06-25 21:17:10 UTC (rev 3340)
@@ -1,144 +0,0 @@
-deme_0000000_energy_0000000 = [ ...
-99490 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 
-];
-
-
-deme_0000000_energy_0000010 = [ ...
-30815.8 30918 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 30815.8 
-0 0 0 0 0 0 0 0 0 30815.8 
-];
-
-deme_0000000_energy_0000020 = [ ...
-15770.3 15770.3 15804.5 0 0 0 0 15798.9 15770.3 0 
-20344 0 0 15820.4 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 
-15833.8 0 0 0 0 0 0 0 15770.3 15822.7 
-15770.3 15832.2 0 0 0 0 0 15770.3 15832.2 15770.3 
-];
-
-deme_0000000_energy_0000030 = [ ...
-13397.3 12474.1 15309.3 0 0 0 0 15275.8 12515.5 12533 
-19496.5 12474.1 12474.1 15341.1 0 0 0 12472.9 0 0 
-0 12474.1 12474.1 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 
-12004.7 0 0 0 0 0 0 0 12474.1 0 
-12043.3 13351 12519.2 0 0 0 0 0 12474.1 12526.8 
-12525.5 12515.5 0 0 0 0 0 13345.6 12474.1 12521.8 
-12534.3 13397.3 12474.1 0 0 0 0 13397.3 12521.8 13397.3 
-];
-
-deme_0000000_energy_0000040 = [ ...
-11806.3 11869 14795 11752 11752 0 11752 14752.7 11869 11869 
-18609.6 11793.3 11869 14744.2 11752 0 11861.8 11798.2 11869 11902.7 
-11752 11869 11799.2 0 0 0 11798.2 0 11942.5 11752 
-11798 11802.7 11814.8 11803.9 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 10996 0 
-11902.7 0 0 0 0 0 0 11793.3 12108 10957.5 
-11187.8 12947.3 11869 0 0 0 11789.8 11808.7 11752 11806.3 
-11801.6 11808.7 11869 11869 0 11869 11902.7 11869 11802.7 11808.7 
-11808.7 11869 11808.7 11805.7 0 0 12145.6 11752 11806.3 11869 
-];
-
-deme_0000000_energy_0000050 = [ ...
-11534.2 10581.8 14125.2 11621.1 11534.2 11492.5 11593.7 14072.7 11653.2 11533 
-17586.3 11156.4 11649.7 14090.3 11451.9 11534.2 11593.7 11525.7 11649.7 11534.2 
-11633.4 11649.7 11163.1 11653.2 11534.2 11525.7 11525.7 11527.3 11605.6 11407 
-11649.7 11593.7 11566.9 11646.5 11640.7 0 11527.3 11525.7 11605.6 11648.5 
-11534.2 11593.7 11489.7 11641.9 11634.9 0 0 11605.6 10729.7 11565.8 
-10702.5 11534.2 10726.5 0 11534.2 10645.3 10645.3 11593.7 10729.7 11566.9 
-11566.9 10726.5 11566.9 11534.2 11566.9 11630.2 11633.7 11632.2 11566.9 10767 
-10769.2 12476.9 11566.9 11566.9 11566.9 11566.9 11532.4 11566.9 11593.7 11534.2 
-10936.4 11566.9 11532.2 11566.9 11534.2 11534.2 11534.2 11534.2 11593.7 11593.7 
-11534.2 11566.9 11534.2 11532.2 11566.9 11534.2 11566.9 11565.8 11566.9 10937.5 
-];
-
-deme_0000000_energy_0000060 = [ ...
-11466.2 10652.3 10651.3 11242 11599.7 11559.1 11493.4 13445 11460.8 10180.8 
-11603.2 10812.8 11300.1 13507.7 11112.9 11460.8 11259.3 11493.4 11460.8 11059.6 
-10765.2 10812.8 10802 11349 11464.9 11462.2 11452.1 11570.1 11493.4 11102.3 
-11605.6 11482.4 10567.7 10569.8 11610.4 11604.6 11321.4 11553.8 11531.8 10802.3 
-11481.2 11460.8 11609.2 11493.4 11556.9 11610.2 11559.1 11553.8 11608.4 11607.2 
-10802.3 11603.4 10991 11493.4 11559.1 10079.3 11615.5 11559.1 11559.1 11600.9 
-10623 10183 11559.1 11460.8 11493.4 11595.3 11605.7 11493.4 11557.9 10917.9 
-10920.1 12006.6 10183 11486.4 10611.9 11460.8 11493.4 11493.4 11460.8 10623 
-11602.3 11611.6 11458.7 11458.7 11559.1 11586.3 10802.3 11559.1 11559.1 11604.6 
-11610.4 11493.4 11493.4 11611.4 11603.2 11559.1 10840.3 10802.3 11559.1 11460.8 
-];
-
-deme_0000000_energy_0000070 = [ ...
-0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 
-30114.3 0 0 0 0 0 0 0 0 0 
-30262.7 30114.3 0 0 0 0 0 0 0 30262.7 
-0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 
-];
-
-deme_0000000_energy_0000080 = [ ...
-0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 
-14918.9 14996.9 0 0 0 0 0 0 0 14920.4 
-14969.9 14993.9 14977.4 0 0 0 0 0 19512.1 0 
-14993.9 14993.9 14975.9 0 0 0 0 0 14974.4 19577.6 
-14993.9 0 0 0 0 0 0 0 0 14974.4 
-0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 
-];
-
-deme_0000000_energy_0000090 = [ ...
-0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 12334.5 
-12335.7 12333.3 0 0 0 0 0 0 11592.4 0 
-12332 14530.5 12533.8 0 0 0 0 0 12491.8 11592.4 
-12533.8 12533.8 11634.3 12063.8 0 0 0 11641.3 18779 11649.5 
-11649.5 12653.4 10949.3 11643.6 0 0 0 0 11640.1 12533.8 
-12071.5 12555.4 0 10940.5 0 0 0 0 11396 12569.4 
-0 0 0 0 0 0 0 11396 0 12102.2 
-0 0 0 0 0 0 0 0 0 0 
-];
-
-deme_0000000_energy_0000100 = [ ...
-0 0 0 0 0 0 0 0 0 0 
-11744.4 10807 0 0 0 0 0 0 11061 11316.7 
-11706.8 10812.4 11764.8 0 0 0 0 10904.9 10863.4 11064.4 
-11706.8 11758.9 11023.3 11022.2 0 0 0 10906 10863.4 11761.6 
-11709.1 10990.9 11022.2 11025 11025 0 0 10863.4 12072.1 11022.2 
-11022.2 10202.4 10990.9 10228.3 10199.3 0 0 10901.6 17787.6 10990.9 
-10990.9 11477.5 10199.3 10990.9 10228.3 10229.3 0 10912.5 10978.5 11022.2 
-10233.1 12129.3 10674.6 10199.3 11022.2 0 10911.4 11004.2 11059 10990.9 
-10207.2 10233.1 10198.3 10674.6 0 0 0 11023.3 11022.2 10233.1 
-10233.1 0 0 0 0 0 0 0 11022.2 10267.3 
-];
-

Copied: branches/interrupt/tests/energy_deme_level_res/expected/data/deme_0000000_spatial_energy.m (from rev 3300, development/tests/energy_deme_level_res/expected/data/deme_0000000_spatial_energy.m)
===================================================================
--- branches/interrupt/tests/energy_deme_level_res/expected/data/deme_0000000_spatial_energy.m	                        (rev 0)
+++ branches/interrupt/tests/energy_deme_level_res/expected/data/deme_0000000_spatial_energy.m	2009-06-25 21:17:10 UTC (rev 3340)
@@ -0,0 +1,144 @@
+deme_0000000_energy_0000000 = [ ...
+99490 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 
+];
+
+
+deme_0000000_energy_0000010 = [ ...
+30815.8 30918 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 30815.8 
+0 0 0 0 0 0 0 0 0 30815.8 
+];
+
+deme_0000000_energy_0000020 = [ ...
+15770.3 15770.3 15804.5 0 0 0 0 15798.9 15770.3 0 
+20344 0 0 15820.4 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 
+15833.8 0 0 0 0 0 0 0 15770.3 15822.7 
+15770.3 15832.2 0 0 0 0 0 15770.3 15832.2 15770.3 
+];
+
+deme_0000000_energy_0000030 = [ ...
+13397.3 12474.1 15309.3 0 0 0 0 15275.8 12515.5 12533 
+19496.5 12474.1 12474.1 15341.1 0 0 0 12472.9 0 0 
+0 12474.1 12474.1 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 
+12004.7 0 0 0 0 0 0 0 12474.1 0 
+12043.3 13351 12519.2 0 0 0 0 0 12474.1 12526.8 
+12525.5 12515.5 0 0 0 0 0 13345.6 12474.1 12521.8 
+12534.3 13397.3 12474.1 0 0 0 0 13397.3 12521.8 13397.3 
+];
+
+deme_0000000_energy_0000040 = [ ...
+11806.3 11869 14795 11752 11752 0 11752 14752.7 11869 11869 
+18609.6 11793.3 11869 14744.2 11752 0 11861.8 11798.2 11869 11902.7 
+11752 11869 11799.2 0 0 0 11798.2 0 11942.5 11752 
+11798 11802.7 11814.8 11803.9 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 10996 0 
+11902.7 0 0 0 0 0 0 11793.3 12108 10957.5 
+11187.8 12947.3 11869 0 0 0 11789.8 11808.7 11752 11806.3 
+11801.6 11808.7 11869 11869 0 11869 11902.7 11869 11802.7 11808.7 
+11808.7 11869 11808.7 11805.7 0 0 12145.6 11752 11806.3 11869 
+];
+
+deme_0000000_energy_0000050 = [ ...
+11534.2 10581.8 14125.2 11621.1 11534.2 11492.5 11593.7 14072.7 11653.2 11533 
+17586.3 11156.4 11649.7 14090.3 11451.9 11534.2 11593.7 11525.7 11649.7 11534.2 
+11633.4 11649.7 11163.1 11653.2 11534.2 11525.7 11525.7 11527.3 11605.6 11407 
+11649.7 11593.7 11566.9 11646.5 11640.7 0 11527.3 11525.7 11605.6 11648.5 
+11534.2 11593.7 11489.7 11641.9 11634.9 0 0 11605.6 10729.7 11565.8 
+10702.5 11534.2 10726.5 0 11534.2 10645.3 10645.3 11593.7 10729.7 11566.9 
+11566.9 10726.5 11566.9 11534.2 11566.9 11630.2 11633.7 11632.2 11566.9 10767 
+10769.2 12476.9 11566.9 11566.9 11566.9 11566.9 11532.4 11566.9 11593.7 11534.2 
+10936.4 11566.9 11532.2 11566.9 11534.2 11534.2 11534.2 11534.2 11593.7 11593.7 
+11534.2 11566.9 11534.2 11532.2 11566.9 11534.2 11566.9 11565.8 11566.9 10937.5 
+];
+
+deme_0000000_energy_0000060 = [ ...
+11466.2 10652.3 10651.3 11242 11599.7 11559.1 11493.4 13445 11460.8 10180.8 
+11603.2 10812.8 11300.1 13507.7 11112.9 11460.8 11259.3 11493.4 11460.8 11059.6 
+10765.2 10812.8 10802 11349 11464.9 11462.2 11452.1 11570.1 11493.4 11102.3 
+11605.6 11482.4 10567.7 10569.8 11610.4 11604.6 11321.4 11553.8 11531.8 10802.3 
+11481.2 11460.8 11609.2 11493.4 11556.9 11610.2 11559.1 11553.8 11608.4 11607.2 
+10802.3 11603.4 10991 11493.4 11559.1 10079.3 11615.5 11559.1 11559.1 11600.9 
+10623 10183 11559.1 11460.8 11493.4 11595.3 11605.7 11493.4 11557.9 10917.9 
+10920.1 12006.6 10183 11486.4 10611.9 11460.8 11493.4 11493.4 11460.8 10623 
+11602.3 11611.6 11458.7 11458.7 11559.1 11586.3 10802.3 11559.1 11559.1 11604.6 
+11610.4 11493.4 11493.4 11611.4 11603.2 11559.1 10840.3 10802.3 11559.1 11460.8 
+];
+
+deme_0000000_energy_0000070 = [ ...
+0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 
+30114.3 0 0 0 0 0 0 0 0 0 
+30262.7 30114.3 0 0 0 0 0 0 0 30262.7 
+0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 
+];
+
+deme_0000000_energy_0000080 = [ ...
+0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 
+14918.9 14996.9 0 0 0 0 0 0 0 14920.4 
+14969.9 14993.9 14977.4 0 0 0 0 0 19512.1 0 
+14993.9 14993.9 14975.9 0 0 0 0 0 14974.4 19577.6 
+14993.9 0 0 0 0 0 0 0 0 14974.4 
+0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 
+];
+
+deme_0000000_energy_0000090 = [ ...
+0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 12334.5 
+12335.7 12333.3 0 0 0 0 0 0 11592.4 0 
+12332 14530.5 12533.8 0 0 0 0 0 12491.8 11592.4 
+12533.8 12533.8 11634.3 12063.8 0 0 0 11641.3 18779 11649.5 
+11649.5 12653.4 10949.3 11643.6 0 0 0 0 11640.1 12533.8 
+12071.5 12555.4 0 10940.5 0 0 0 0 11396 12569.4 
+0 0 0 0 0 0 0 11396 0 12102.2 
+0 0 0 0 0 0 0 0 0 0 
+];
+
+deme_0000000_energy_0000100 = [ ...
+0 0 0 0 0 0 0 0 0 0 
+11744.4 10807 0 0 0 0 0 0 11061 11316.7 
+11706.8 10812.4 11764.8 0 0 0 0 10904.9 10863.4 11064.4 
+11706.8 11758.9 11023.3 11022.2 0 0 0 10906 10863.4 11761.6 
+11709.1 10990.9 11022.2 11025 11025 0 0 10863.4 12072.1 11022.2 
+11022.2 10202.4 10990.9 10228.3 10199.3 0 0 10901.6 17787.6 10990.9 
+10990.9 11477.5 10199.3 10990.9 10228.3 10229.3 0 10912.5 10978.5 11022.2 
+10233.1 12129.3 10674.6 10199.3 11022.2 0 10911.4 11004.2 11059 10990.9 
+10207.2 10233.1 10198.3 10674.6 0 0 0 11023.3 11022.2 10233.1 
+10233.1 0 0 0 0 0 0 0 11022.2 10267.3 
+];
+

Deleted: branches/interrupt/tests/energy_deme_level_res/expected/data/deme_0000001_spatial_energy.m
===================================================================
--- development/tests/energy_deme_level_res/expected/data/deme_0000001_spatial_energy.m	2009-06-09 17:13:30 UTC (rev 3300)
+++ branches/interrupt/tests/energy_deme_level_res/expected/data/deme_0000001_spatial_energy.m	2009-06-25 21:17:10 UTC (rev 3340)
@@ -1,144 +0,0 @@
-deme_0000001_energy_0000000 = [ ...
-0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 
-];
-
-
-deme_0000001_energy_0000010 = [ ...
-0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 
-];
-
-deme_0000001_energy_0000020 = [ ...
-0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 
-];
-
-deme_0000001_energy_0000030 = [ ...
-0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 
-];
-
-deme_0000001_energy_0000040 = [ ...
-0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 
-];
-
-deme_0000001_energy_0000050 = [ ...
-0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 
-];
-
-deme_0000001_energy_0000060 = [ ...
-0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 
-];
-
-deme_0000001_energy_0000070 = [ ...
-0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 
-0 51714.2 0 0 0 0 0 0 0 0 
-30262.7 0 0 0 0 0 0 0 0 0 
-0 30271.7 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 
-];
-
-deme_0000001_energy_0000080 = [ ...
-0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 
-19621 0 19559.4 0 0 0 0 0 0 0 
-0 19559.4 0 19559.4 0 0 0 0 0 0 
-14993.9 14993.9 19577.6 0 0 0 0 0 0 19512.1 
-0 14993.9 0 0 0 0 0 0 0 0 
-14998.4 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 
-];
-
-deme_0000001_energy_0000090 = [ ...
-0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 
-12521.9 0 12520.7 12561.4 0 0 0 0 0 12257.7 
-12216.9 12521.9 12521.9 12521.9 12521.9 0 0 0 0 12216.9 
-11641.3 12521.9 12521.9 12521.9 0 0 0 0 12257.7 11637.8 
-11639 12071.5 11648.3 12065.8 12561.4 12561.4 0 0 11641.3 18755.1 
-11634.3 12533.8 10947.4 11648.3 12051.1 0 0 0 0 11639 
-11649.5 0 10952.9 0 0 0 0 0 0 11649.5 
-0 12533.8 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 
-];
-
-deme_0000001_energy_0000100 = [ ...
-0 0 0 10292.9 0 0 0 0 0 0 
-10981.7 10391.9 11017.4 11016.3 10327.3 0 0 0 10631.8 0 
-11016.3 11053.1 10630.7 10361.8 11016.3 0 0 10863.4 10631.8 10667.2 
-10631.8 10631.8 10361.8 11016.3 11016.3 11016.3 10686.2 10631.8 10863.4 10596.4 
-10889.3 10631.8 10981.7 11016.3 11016.3 10981.7 0 10699.1 10664.8 10596.4 
-10892.5 10207.2 10233.1 10213.7 10227.2 0 0 10990.9 10990.9 10909.2 
-10901.6 10990.9 10207.2 10990.9 11627.4 10217.9 0 0 10990.9 10907.1 
-10990.9 10885.2 10207.2 10197.9 10990.9 0 0 0 10989.8 11022.2 
-0 10986.5 0 10206.2 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 
-];
-

Copied: branches/interrupt/tests/energy_deme_level_res/expected/data/deme_0000001_spatial_energy.m (from rev 3300, development/tests/energy_deme_level_res/expected/data/deme_0000001_spatial_energy.m)
===================================================================
--- branches/interrupt/tests/energy_deme_level_res/expected/data/deme_0000001_spatial_energy.m	                        (rev 0)
+++ branches/interrupt/tests/energy_deme_level_res/expected/data/deme_0000001_spatial_energy.m	2009-06-25 21:17:10 UTC (rev 3340)
@@ -0,0 +1,144 @@
+deme_0000001_energy_0000000 = [ ...
+0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 
+];
+
+
+deme_0000001_energy_0000010 = [ ...
+0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 
+];
+
+deme_0000001_energy_0000020 = [ ...
+0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 
+];
+
+deme_0000001_energy_0000030 = [ ...
+0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 
+];
+
+deme_0000001_energy_0000040 = [ ...
+0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 
+];
+
+deme_0000001_energy_0000050 = [ ...
+0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 
+];
+
+deme_0000001_energy_0000060 = [ ...
+0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 
+];
+
+deme_0000001_energy_0000070 = [ ...
+0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 
+0 51714.2 0 0 0 0 0 0 0 0 
+30262.7 0 0 0 0 0 0 0 0 0 
+0 30271.7 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 
+];
+
+deme_0000001_energy_0000080 = [ ...
+0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 
+19621 0 19559.4 0 0 0 0 0 0 0 
+0 19559.4 0 19559.4 0 0 0 0 0 0 
+14993.9 14993.9 19577.6 0 0 0 0 0 0 19512.1 
+0 14993.9 0 0 0 0 0 0 0 0 
+14998.4 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 
+];
+
+deme_0000001_energy_0000090 = [ ...
+0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 
+12521.9 0 12520.7 12561.4 0 0 0 0 0 12257.7 
+12216.9 12521.9 12521.9 12521.9 12521.9 0 0 0 0 12216.9 
+11641.3 12521.9 12521.9 12521.9 0 0 0 0 12257.7 11637.8 
+11639 12071.5 11648.3 12065.8 12561.4 12561.4 0 0 11641.3 18755.1 
+11634.3 12533.8 10947.4 11648.3 12051.1 0 0 0 0 11639 
+11649.5 0 10952.9 0 0 0 0 0 0 11649.5 
+0 12533.8 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 
+];
+
+deme_0000001_energy_0000100 = [ ...
+0 0 0 10292.9 0 0 0 0 0 0 
+10981.7 10391.9 11017.4 11016.3 10327.3 0 0 0 10631.8 0 
+11016.3 11053.1 10630.7 10361.8 11016.3 0 0 10863.4 10631.8 10667.2 
+10631.8 10631.8 10361.8 11016.3 11016.3 11016.3 10686.2 10631.8 10863.4 10596.4 
+10889.3 10631.8 10981.7 11016.3 11016.3 10981.7 0 10699.1 10664.8 10596.4 
+10892.5 10207.2 10233.1 10213.7 10227.2 0 0 10990.9 10990.9 10909.2 
+10901.6 10990.9 10207.2 10990.9 11627.4 10217.9 0 0 10990.9 10907.1 
+10990.9 10885.2 10207.2 10197.9 10990.9 0 0 0 10989.8 11022.2 
+0 10986.5 0 10206.2 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 
+];
+

Deleted: branches/interrupt/tests/energy_deme_level_res/expected/data/deme_donor.dat
===================================================================
--- development/tests/energy_deme_level_res/expected/data/deme_donor.dat	2009-06-09 17:13:30 UTC (rev 3300)
+++ branches/interrupt/tests/energy_deme_level_res/expected/data/deme_donor.dat	2009-06-25 21:17:10 UTC (rev 3340)
@@ -1,17 +0,0 @@
-# Num orgs doing doing a donate for each deme in population
-# Thu Jun  4 11:34:53 2009
-#  1: update
-#  2: Deme 0
-#  3: Deme 1
-
-0 0.000000 0.000000 
-10 0 0 
-20 0 0 
-30 0 0 
-40 0 0 
-50 0 0 
-60 0 0 
-70 0 0 
-80 0 0 
-90 0 0 
-100 0 0 

Copied: branches/interrupt/tests/energy_deme_level_res/expected/data/deme_donor.dat (from rev 3300, development/tests/energy_deme_level_res/expected/data/deme_donor.dat)
===================================================================
--- branches/interrupt/tests/energy_deme_level_res/expected/data/deme_donor.dat	                        (rev 0)
+++ branches/interrupt/tests/energy_deme_level_res/expected/data/deme_donor.dat	2009-06-25 21:17:10 UTC (rev 3340)
@@ -0,0 +1,17 @@
+# Num orgs doing doing a donate for each deme in population
+# Thu Jun  4 11:34:53 2009
+#  1: update
+#  2: Deme 0
+#  3: Deme 1
+
+0 0.000000 0.000000 
+10 0 0 
+20 0 0 
+30 0 0 
+40 0 0 
+50 0 0 
+60 0 0 
+70 0 0 
+80 0 0 
+90 0 0 
+100 0 0 

Deleted: branches/interrupt/tests/energy_deme_level_res/expected/data/deme_fitness.dat
===================================================================
--- development/tests/energy_deme_level_res/expected/data/deme_fitness.dat	2009-06-09 17:13:30 UTC (rev 3300)
+++ branches/interrupt/tests/energy_deme_level_res/expected/data/deme_fitness.dat	2009-06-25 21:17:10 UTC (rev 3340)
@@ -1,17 +0,0 @@
-# Average fitnesses for each deme in the population
-# Thu Jun  4 11:34:53 2009
-#  1: update
-#  2: Deme 0
-#  3: Deme 1
-
-0 0.000000 0.000000 
-10 0.267123 0 
-20 0.253012 0 
-30 0.260206 0 
-40 0.262249 0 
-50 0.262503 0 
-60 0.261533 0 
-70 0.265306 0.265306 
-80 0.265306 0.265144 
-90 0.264776 0.26499 
-100 0.25159 0.26145 

Copied: branches/interrupt/tests/energy_deme_level_res/expected/data/deme_fitness.dat (from rev 3300, development/tests/energy_deme_level_res/expected/data/deme_fitness.dat)
===================================================================
--- branches/interrupt/tests/energy_deme_level_res/expected/data/deme_fitness.dat	                        (rev 0)
+++ branches/interrupt/tests/energy_deme_level_res/expected/data/deme_fitness.dat	2009-06-25 21:17:10 UTC (rev 3340)
@@ -0,0 +1,17 @@
+# Average fitnesses for each deme in the population
+# Thu Jun  4 11:34:53 2009
+#  1: update
+#  2: Deme 0
+#  3: Deme 1
+
+0 0.000000 0.000000 
+10 0.267123 0 
+20 0.253012 0 
+30 0.260206 0 
+40 0.262249 0 
+50 0.262503 0 
+60 0.261533 0 
+70 0.265306 0.265306 
+80 0.265306 0.265144 
+90 0.264776 0.26499 
+100 0.25159 0.26145 

Deleted: branches/interrupt/tests/energy_deme_level_res/expected/data/deme_gest_time.dat
===================================================================
--- development/tests/energy_deme_level_res/expected/data/deme_gest_time.dat	2009-06-09 17:13:30 UTC (rev 3300)
+++ branches/interrupt/tests/energy_deme_level_res/expected/data/deme_gest_time.dat	2009-06-25 21:17:10 UTC (rev 3340)
@@ -1,17 +0,0 @@
-# Average gestation time for each deme in population
-# Thu Jun  4 11:34:53 2009
-#  1: update
-#  2: Deme 0
-#  3: Deme 1
-
-0 146.000000 0.000000 
-10 146 0 
-20 143.067 0 
-30 144.387 0 
-40 146.105 0 
-50 145.208 0 
-60 145.97 0 
-70 147 147 
-80 147 148.6 
-90 147.034 148.618 
-100 150.672 151.678 

Copied: branches/interrupt/tests/energy_deme_level_res/expected/data/deme_gest_time.dat (from rev 3300, development/tests/energy_deme_level_res/expected/data/deme_gest_time.dat)
===================================================================
--- branches/interrupt/tests/energy_deme_level_res/expected/data/deme_gest_time.dat	                        (rev 0)
+++ branches/interrupt/tests/energy_deme_level_res/expected/data/deme_gest_time.dat	2009-06-25 21:17:10 UTC (rev 3340)
@@ -0,0 +1,17 @@
+# Average gestation time for each deme in population
+# Thu Jun  4 11:34:53 2009
+#  1: update
+#  2: Deme 0
+#  3: Deme 1
+
+0 146.000000 0.000000 
+10 146 0 
+20 143.067 0 
+30 144.387 0 
+40 146.105 0 
+50 145.208 0 
+60 145.97 0 
+70 147 147 
+80 147 148.6 
+90 147.034 148.618 
+100 150.672 151.678 

Deleted: branches/interrupt/tests/energy_deme_level_res/expected/data/deme_instruction-0.dat
===================================================================
--- development/tests/energy_deme_level_res/expected/data/deme_instruction-0.dat	2009-06-09 17:13:30 UTC (rev 3300)
+++ branches/interrupt/tests/energy_deme_level_res/expected/data/deme_instruction-0.dat	2009-06-25 21:17:10 UTC (rev 3340)
@@ -1,48 +0,0 @@
-# Number of times each instruction is exectued in deme 0
-# Thu Jun  4 11:34:53 2009
-#  1: update
-#  2: Inst 0
-#  3: Inst 1
-#  4: Inst 2
-#  5: Inst 3
-#  6: Inst 4
-#  7: Inst 5
-#  8: Inst 6
-#  9: Inst 7
-# 10: Inst 8
-# 11: Inst 9
-# 12: Inst 10
-# 13: Inst 11
-# 14: Inst 12
-# 15: Inst 13
-# 16: Inst 14
-# 17: Inst 15
-# 18: Inst 16
-# 19: Inst 17
-# 20: Inst 18
-# 21: Inst 19
-# 22: Inst 20
-# 23: Inst 21
-# 24: Inst 22
-# 25: Inst 23
-# 26: Inst 24
-# 27: Inst 25
-# 28: Inst 26
-# 29: Inst 27
-# 30: Inst 28
-# 31: Inst 29
-# 32: Inst 30
-# 33: Inst 31
-# 34: Inst 32
-
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-10 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 8 56 4 4 168 8 168 0 0 168 0 0 0 0 0 0 0 0 
-20 42 0 0 0 0 0 0 0 0 0 0 0 0 0 0 30 210 15 15 588 30 588 0 0 588 0 0 0 0 0 0 0 0 
-30 42 0 2 0 0 0 0 0 0 0 0 0 0 0 0 62 432 31 31 1258 62 1258 0 0 1258 0 0 0 0 0 0 0 0 
-40 42 0 3 0 0 0 0 0 43 0 0 0 0 0 0 115 795 57 57 2353 114 2353 0 0 2356 0 0 0 0 0 0 0 0 
-50 52 0 9 2 0 0 2 0 0 3 0 0 0 0 0 194 1332 96 96 3951 192 3951 0 0 3956 0 2 2 13 0 0 0 0 
-60 66 0 32 3 0 0 1 0 0 3 2 2 0 0 0 201 1379 100 100 4120 200 4120 0 11 4106 1 1 3 13 0 0 1 0 
-70 0 0 0 0 0 0 0 0 0 4 0 0 0 0 0 8 56 4 4 168 8 168 0 0 168 0 0 0 0 0 0 0 0 
-80 0 0 0 0 0 0 0 0 0 14 0 0 0 0 0 28 196 14 14 588 28 588 0 0 588 0 0 0 0 0 0 0 0 
-90 0 0 2 0 0 0 0 0 0 29 0 3 0 0 0 58 406 29 29 1216 58 1216 0 0 1216 0 0 0 2 0 0 0 0 
-100 84 0 51 0 2 0 0 42 0 61 0 10 0 2 0 122 851 61 61 2472 122 2472 0 0 2430 4 0 0 0 0 0 0 3 

Copied: branches/interrupt/tests/energy_deme_level_res/expected/data/deme_instruction-0.dat (from rev 3300, development/tests/energy_deme_level_res/expected/data/deme_instruction-0.dat)
===================================================================
--- branches/interrupt/tests/energy_deme_level_res/expected/data/deme_instruction-0.dat	                        (rev 0)
+++ branches/interrupt/tests/energy_deme_level_res/expected/data/deme_instruction-0.dat	2009-06-25 21:17:10 UTC (rev 3340)
@@ -0,0 +1,48 @@
+# Number of times each instruction is exectued in deme 0
+# Thu Jun  4 11:34:53 2009
+#  1: update
+#  2: Inst 0
+#  3: Inst 1
+#  4: Inst 2
+#  5: Inst 3
+#  6: Inst 4
+#  7: Inst 5
+#  8: Inst 6
+#  9: Inst 7
+# 10: Inst 8
+# 11: Inst 9
+# 12: Inst 10
+# 13: Inst 11
+# 14: Inst 12
+# 15: Inst 13
+# 16: Inst 14
+# 17: Inst 15
+# 18: Inst 16
+# 19: Inst 17
+# 20: Inst 18
+# 21: Inst 19
+# 22: Inst 20
+# 23: Inst 21
+# 24: Inst 22
+# 25: Inst 23
+# 26: Inst 24
+# 27: Inst 25
+# 28: Inst 26
+# 29: Inst 27
+# 30: Inst 28
+# 31: Inst 29
+# 32: Inst 30
+# 33: Inst 31
+# 34: Inst 32
+
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+10 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 8 56 4 4 168 8 168 0 0 168 0 0 0 0 0 0 0 0 
+20 42 0 0 0 0 0 0 0 0 0 0 0 0 0 0 30 210 15 15 588 30 588 0 0 588 0 0 0 0 0 0 0 0 
+30 42 0 2 0 0 0 0 0 0 0 0 0 0 0 0 62 432 31 31 1258 62 1258 0 0 1258 0 0 0 0 0 0 0 0 
+40 42 0 3 0 0 0 0 0 43 0 0 0 0 0 0 115 795 57 57 2353 114 2353 0 0 2356 0 0 0 0 0 0 0 0 
+50 52 0 9 2 0 0 2 0 0 3 0 0 0 0 0 194 1332 96 96 3951 192 3951 0 0 3956 0 2 2 13 0 0 0 0 
+60 66 0 32 3 0 0 1 0 0 3 2 2 0 0 0 201 1379 100 100 4120 200 4120 0 11 4106 1 1 3 13 0 0 1 0 
+70 0 0 0 0 0 0 0 0 0 4 0 0 0 0 0 8 56 4 4 168 8 168 0 0 168 0 0 0 0 0 0 0 0 
+80 0 0 0 0 0 0 0 0 0 14 0 0 0 0 0 28 196 14 14 588 28 588 0 0 588 0 0 0 0 0 0 0 0 
+90 0 0 2 0 0 0 0 0 0 29 0 3 0 0 0 58 406 29 29 1216 58 1216 0 0 1216 0 0 0 2 0 0 0 0 
+100 84 0 51 0 2 0 0 42 0 61 0 10 0 2 0 122 851 61 61 2472 122 2472 0 0 2430 4 0 0 0 0 0 0 3 

Deleted: branches/interrupt/tests/energy_deme_level_res/expected/data/deme_instruction-1.dat
===================================================================
--- development/tests/energy_deme_level_res/expected/data/deme_instruction-1.dat	2009-06-09 17:13:30 UTC (rev 3300)
+++ branches/interrupt/tests/energy_deme_level_res/expected/data/deme_instruction-1.dat	2009-06-25 21:17:10 UTC (rev 3340)
@@ -1,48 +0,0 @@
-# Number of times each instruction is exectued in deme 1
-# Thu Jun  4 11:34:53 2009
-#  1: update
-#  2: Inst 0
-#  3: Inst 1
-#  4: Inst 2
-#  5: Inst 3
-#  6: Inst 4
-#  7: Inst 5
-#  8: Inst 6
-#  9: Inst 7
-# 10: Inst 8
-# 11: Inst 9
-# 12: Inst 10
-# 13: Inst 11
-# 14: Inst 12
-# 15: Inst 13
-# 16: Inst 14
-# 17: Inst 15
-# 18: Inst 16
-# 19: Inst 17
-# 20: Inst 18
-# 21: Inst 19
-# 22: Inst 20
-# 23: Inst 21
-# 24: Inst 22
-# 25: Inst 23
-# 26: Inst 24
-# 27: Inst 25
-# 28: Inst 26
-# 29: Inst 27
-# 30: Inst 28
-# 31: Inst 29
-# 32: Inst 30
-# 33: Inst 31
-# 34: Inst 32
-
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-10 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-20 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-30 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-40 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-50 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-60 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-70 0 0 0 0 0 0 0 0 0 3 0 0 0 0 0 6 42 3 3 126 6 126 0 0 126 0 0 0 0 0 0 0 0 
-80 0 0 0 0 0 0 0 0 0 10 0 0 0 0 0 20 140 10 10 424 20 424 0 0 424 4 0 0 0 0 0 0 0 
-90 0 2 3 0 0 0 0 4 0 34 0 0 0 0 0 64 469 34 34 1441 68 1441 2 0 1441 16 0 0 0 0 0 0 0 
-100 2 5 10 0 0 0 4 13 0 59 0 86 0 0 0 105 803 59 59 2510 118 2510 4 1 2510 31 0 0 0 0 3 0 0 

Copied: branches/interrupt/tests/energy_deme_level_res/expected/data/deme_instruction-1.dat (from rev 3300, development/tests/energy_deme_level_res/expected/data/deme_instruction-1.dat)
===================================================================
--- branches/interrupt/tests/energy_deme_level_res/expected/data/deme_instruction-1.dat	                        (rev 0)
+++ branches/interrupt/tests/energy_deme_level_res/expected/data/deme_instruction-1.dat	2009-06-25 21:17:10 UTC (rev 3340)
@@ -0,0 +1,48 @@
+# Number of times each instruction is exectued in deme 1
+# Thu Jun  4 11:34:53 2009
+#  1: update
+#  2: Inst 0
+#  3: Inst 1
+#  4: Inst 2
+#  5: Inst 3
+#  6: Inst 4
+#  7: Inst 5
+#  8: Inst 6
+#  9: Inst 7
+# 10: Inst 8
+# 11: Inst 9
+# 12: Inst 10
+# 13: Inst 11
+# 14: Inst 12
+# 15: Inst 13
+# 16: Inst 14
+# 17: Inst 15
+# 18: Inst 16
+# 19: Inst 17
+# 20: Inst 18
+# 21: Inst 19
+# 22: Inst 20
+# 23: Inst 21
+# 24: Inst 22
+# 25: Inst 23
+# 26: Inst 24
+# 27: Inst 25
+# 28: Inst 26
+# 29: Inst 27
+# 30: Inst 28
+# 31: Inst 29
+# 32: Inst 30
+# 33: Inst 31
+# 34: Inst 32
+
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+10 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+20 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+30 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+40 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+50 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+60 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+70 0 0 0 0 0 0 0 0 0 3 0 0 0 0 0 6 42 3 3 126 6 126 0 0 126 0 0 0 0 0 0 0 0 
+80 0 0 0 0 0 0 0 0 0 10 0 0 0 0 0 20 140 10 10 424 20 424 0 0 424 4 0 0 0 0 0 0 0 
+90 0 2 3 0 0 0 0 4 0 34 0 0 0 0 0 64 469 34 34 1441 68 1441 2 0 1441 16 0 0 0 0 0 0 0 
+100 2 5 10 0 0 0 4 13 0 59 0 86 0 0 0 105 803 59 59 2510 118 2510 4 1 2510 31 0 0 0 0 3 0 0 

Deleted: branches/interrupt/tests/energy_deme_level_res/expected/data/deme_lifetime_fitness.dat
===================================================================
--- development/tests/energy_deme_level_res/expected/data/deme_lifetime_fitness.dat	2009-06-09 17:13:30 UTC (rev 3300)
+++ branches/interrupt/tests/energy_deme_level_res/expected/data/deme_lifetime_fitness.dat	2009-06-25 21:17:10 UTC (rev 3340)
@@ -1,17 +0,0 @@
-# Average life fitnesses for each deme in the population
-# Thu Jun  4 11:34:53 2009
-#  1: update
-#  2: Deme 0
-#  3: Deme 1
-
-0 0.000000 0.000000 
-10 0.267123 0 
-20 0.253012 0 
-30 0.260206 0 
-40 0.262249 0 
-50 0.262503 0 
-60 0.261533 0 
-70 0.265306 0.265306 
-80 0.265306 0.265144 
-90 0.264776 0.26499 
-100 0.25159 0.26145 

Copied: branches/interrupt/tests/energy_deme_level_res/expected/data/deme_lifetime_fitness.dat (from rev 3300, development/tests/energy_deme_level_res/expected/data/deme_lifetime_fitness.dat)
===================================================================
--- branches/interrupt/tests/energy_deme_level_res/expected/data/deme_lifetime_fitness.dat	                        (rev 0)
+++ branches/interrupt/tests/energy_deme_level_res/expected/data/deme_lifetime_fitness.dat	2009-06-25 21:17:10 UTC (rev 3340)
@@ -0,0 +1,17 @@
+# Average life fitnesses for each deme in the population
+# Thu Jun  4 11:34:53 2009
+#  1: update
+#  2: Deme 0
+#  3: Deme 1
+
+0 0.000000 0.000000 
+10 0.267123 0 
+20 0.253012 0 
+30 0.260206 0 
+40 0.262249 0 
+50 0.262503 0 
+60 0.261533 0 
+70 0.265306 0.265306 
+80 0.265306 0.265144 
+90 0.264776 0.26499 
+100 0.25159 0.26145 

Deleted: branches/interrupt/tests/energy_deme_level_res/expected/data/deme_merit.dat
===================================================================
--- development/tests/energy_deme_level_res/expected/data/deme_merit.dat	2009-06-09 17:13:30 UTC (rev 3300)
+++ branches/interrupt/tests/energy_deme_level_res/expected/data/deme_merit.dat	2009-06-25 21:17:10 UTC (rev 3340)
@@ -1,17 +0,0 @@
-# Average merits for each deme in population
-# Thu Jun  4 11:34:53 2009
-#  1: update
-#  2: Deme 0
-#  3: Deme 1
-
-0 10.000000 0.000000 
-10 3.09738 0 
-20 1.61755 0 
-30 1.32964 0 
-40 1.2278 0 
-50 1.1816 0 
-60 1.15216 0 
-70 3.02717 3.76817 
-80 1.5694 1.79158 
-90 1.24467 1.24264 
-100 1.11917 1.08665 

Copied: branches/interrupt/tests/energy_deme_level_res/expected/data/deme_merit.dat (from rev 3300, development/tests/energy_deme_level_res/expected/data/deme_merit.dat)
===================================================================
--- branches/interrupt/tests/energy_deme_level_res/expected/data/deme_merit.dat	                        (rev 0)
+++ branches/interrupt/tests/energy_deme_level_res/expected/data/deme_merit.dat	2009-06-25 21:17:10 UTC (rev 3340)
@@ -0,0 +1,17 @@
+# Average merits for each deme in population
+# Thu Jun  4 11:34:53 2009
+#  1: update
+#  2: Deme 0
+#  3: Deme 1
+
+0 10.000000 0.000000 
+10 3.09738 0 
+20 1.61755 0 
+30 1.32964 0 
+40 1.2278 0 
+50 1.1816 0 
+60 1.15216 0 
+70 3.02717 3.76817 
+80 1.5694 1.79158 
+90 1.24467 1.24264 
+100 1.11917 1.08665 

Deleted: branches/interrupt/tests/energy_deme_level_res/expected/data/deme_mut_rates.dat
===================================================================
--- development/tests/energy_deme_level_res/expected/data/deme_mut_rates.dat	2009-06-09 17:13:30 UTC (rev 3300)
+++ branches/interrupt/tests/energy_deme_level_res/expected/data/deme_mut_rates.dat	2009-06-25 21:17:10 UTC (rev 3340)
@@ -1,18 +0,0 @@
-# Average mutation rates for organisms in each deme
-# Thu Jun  4 11:34:53 2009
-#  1: update
-#  2: Deme 0
-#  3: Deme 1
-#  4: Average deme mutation rate averaged across Demes.
-
-0 0.007500 0.000000 0.003750 
-10 0.0075 0 0.00375 
-20 0.0075 0 0.00375 
-30 0.0075 0 0.00375 
-40 0.0075 0 0.00375 
-50 0.0075 0 0.00375 
-60 0.0075 0 0.00375 
-70 0.0075 0.0075 0.0075 
-80 0.0075 0.0075 0.0075 
-90 0.0075 0.0075 0.0075 
-100 0.0075 0.0075 0.0075 

Copied: branches/interrupt/tests/energy_deme_level_res/expected/data/deme_mut_rates.dat (from rev 3300, development/tests/energy_deme_level_res/expected/data/deme_mut_rates.dat)
===================================================================
--- branches/interrupt/tests/energy_deme_level_res/expected/data/deme_mut_rates.dat	                        (rev 0)
+++ branches/interrupt/tests/energy_deme_level_res/expected/data/deme_mut_rates.dat	2009-06-25 21:17:10 UTC (rev 3340)
@@ -0,0 +1,18 @@
+# Average mutation rates for organisms in each deme
+# Thu Jun  4 11:34:53 2009
+#  1: update
+#  2: Deme 0
+#  3: Deme 1
+#  4: Average deme mutation rate averaged across Demes.
+
+0 0.007500 0.000000 0.003750 
+10 0.0075 0 0.00375 
+20 0.0075 0 0.00375 
+30 0.0075 0 0.00375 
+40 0.0075 0 0.00375 
+50 0.0075 0 0.00375 
+60 0.0075 0 0.00375 
+70 0.0075 0.0075 0.0075 
+80 0.0075 0.0075 0.0075 
+90 0.0075 0.0075 0.0075 
+100 0.0075 0.0075 0.0075 

Deleted: branches/interrupt/tests/energy_deme_level_res/expected/data/deme_receiver.dat
===================================================================
--- development/tests/energy_deme_level_res/expected/data/deme_receiver.dat	2009-06-09 17:13:30 UTC (rev 3300)
+++ branches/interrupt/tests/energy_deme_level_res/expected/data/deme_receiver.dat	2009-06-25 21:17:10 UTC (rev 3340)
@@ -1,17 +0,0 @@
-# Num orgs doing receiving a donate for each deme in population
-# Thu Jun  4 11:34:53 2009
-#  1: update
-#  2: Deme 0
-#  3: Deme 1
-
-0 0.000000 0.000000 
-10 0 0 
-20 0 0 
-30 0 0 
-40 0 0 
-50 0 0 
-60 0 0 
-70 0 0 
-80 0 0 
-90 0 0 
-100 0 0 

Copied: branches/interrupt/tests/energy_deme_level_res/expected/data/deme_receiver.dat (from rev 3300, development/tests/energy_deme_level_res/expected/data/deme_receiver.dat)
===================================================================
--- branches/interrupt/tests/energy_deme_level_res/expected/data/deme_receiver.dat	                        (rev 0)
+++ branches/interrupt/tests/energy_deme_level_res/expected/data/deme_receiver.dat	2009-06-25 21:17:10 UTC (rev 3340)
@@ -0,0 +1,17 @@
+# Num orgs doing receiving a donate for each deme in population
+# Thu Jun  4 11:34:53 2009
+#  1: update
+#  2: Deme 0
+#  3: Deme 1
+
+0 0.000000 0.000000 
+10 0 0 
+20 0 0 
+30 0 0 
+40 0 0 
+50 0 0 
+60 0 0 
+70 0 0 
+80 0 0 
+90 0 0 
+100 0 0 

Deleted: branches/interrupt/tests/energy_deme_level_res/expected/data/deme_resources.dat
===================================================================
--- development/tests/energy_deme_level_res/expected/data/deme_resources.dat	2009-06-09 17:13:30 UTC (rev 3300)
+++ branches/interrupt/tests/energy_deme_level_res/expected/data/deme_resources.dat	2009-06-25 21:17:10 UTC (rev 3340)
@@ -1,19 +0,0 @@
-# Avida deme resource data
-# Thu Jun  4 11:34:53 2009
-#  1: update
-#  2: Deme 0 Resource deme_ResA
-#  3: Deme 0 Resource deme_ResB
-#  4: Deme 1 Resource deme_ResA
-#  5: Deme 1 Resource deme_ResB
-
-0 2.000000 1000.000000 1.000000 1000.000000 
-10 7.5 11931.4 1 11931.4 
-20 25.5 20912.2 1 20912.2 
-30 65.5 30904.2 1 30904.2 
-40 138 40901.5 1 41901.3 
-50 296.5 50900.5 1 51900.5 
-60 512 60900.2 1 60900.2 
-70 6 10934.9 4 10934.9 
-80 18.5 20912.2 15.5 20912.2 
-90 57.5 30904.2 53.5 30904.2 
-100 139 40901.5 149 40901.5 

Copied: branches/interrupt/tests/energy_deme_level_res/expected/data/deme_resources.dat (from rev 3300, development/tests/energy_deme_level_res/expected/data/deme_resources.dat)
===================================================================
--- branches/interrupt/tests/energy_deme_level_res/expected/data/deme_resources.dat	                        (rev 0)
+++ branches/interrupt/tests/energy_deme_level_res/expected/data/deme_resources.dat	2009-06-25 21:17:10 UTC (rev 3340)
@@ -0,0 +1,19 @@
+# Avida deme resource data
+# Thu Jun  4 11:34:53 2009
+#  1: update
+#  2: Deme 0 Resource deme_ResA
+#  3: Deme 0 Resource deme_ResB
+#  4: Deme 1 Resource deme_ResA
+#  5: Deme 1 Resource deme_ResB
+
+0 2.000000 1000.000000 1.000000 1000.000000 
+10 7.5 11931.4 1 11931.4 
+20 25.5 20912.2 1 20912.2 
+30 65.5 30904.2 1 30904.2 
+40 138 40901.5 1 41901.3 
+50 296.5 50900.5 1 51900.5 
+60 512 60900.2 1 60900.2 
+70 6 10934.9 4 10934.9 
+80 18.5 20912.2 15.5 20912.2 
+90 57.5 30904.2 53.5 30904.2 
+100 139 40901.5 149 40901.5 

Deleted: branches/interrupt/tests/energy_deme_level_res/expected/data/deme_spatial_resource_deme_ResB.m
===================================================================
--- development/tests/energy_deme_level_res/expected/data/deme_spatial_resource_deme_ResB.m	2009-06-09 17:13:30 UTC (rev 3300)
+++ branches/interrupt/tests/energy_deme_level_res/expected/data/deme_spatial_resource_deme_ResB.m	2009-06-25 21:17:10 UTC (rev 3340)
@@ -1,287 +0,0 @@
-deme_0000000_deme_ResB_0000000 = [ ...
-10 10 10 10 10 10 10 10 10 10 
-10 10 10 10 10 10 10 10 10 10 
-10 10 10 10 10 10 10 10 10 10 
-10 10 10 10 10 10 10 10 10 10 
-10 10 10 10 10 10 10 10 10 10 
-10 10 10 10 10 10 10 10 10 10 
-10 10 10 10 10 10 10 10 10 10 
-10 10 10 10 10 10 10 10 10 10 
-10 10 10 10 10 10 10 10 10 10 
-10 10 10 10 10 10 10 10 10 10 
-];
-
-
-deme_0000001_deme_ResB_0000000 = [ ...
-10 10 10 10 10 10 10 10 10 10 
-10 10 10 10 10 10 10 10 10 10 
-10 10 10 10 10 10 10 10 10 10 
-10 10 10 10 10 10 10 10 10 10 
-10 10 10 10 10 10 10 10 10 10 
-10 10 10 10 10 10 10 10 10 10 
-10 10 10 10 10 10 10 10 10 10 
-10 10 10 10 10 10 10 10 10 10 
-10 10 10 10 10 10 10 10 10 10 
-10 10 10 10 10 10 10 10 10 10 
-];
-
-deme_0000000_deme_ResB_0000010 = [ ...
-10 10 10 10 10 10 10 10 10 10 
-1110 1110 1110 1110 1110 1110 1110 1110 1110 1110 
-10 10 10 10 10 10 10 10 10 10 
-10 10 10 10 10 10 10 10 10 10 
-10 10 10 10 10 10 10 10 10 10 
-3.13811 3.13811 3.13811 3.13811 3.13811 3.13811 3.13811 3.13811 3.13811 3.13811 
-10 10 10 10 10 10 10 10 10 10 
-10 10 10 10 10 10 10 10 10 10 
-10 10 10 10 10 10 10 10 10 10 
-10 10 10 10 10 10 10 10 10 10 
-];
-
-deme_0000001_deme_ResB_0000010 = [ ...
-10 10 10 10 10 10 10 10 10 10 
-1110 1110 1110 1110 1110 1110 1110 1110 1110 1110 
-10 10 10 10 10 10 10 10 10 10 
-10 10 10 10 10 10 10 10 10 10 
-10 10 10 10 10 10 10 10 10 10 
-3.13811 3.13811 3.13811 3.13811 3.13811 3.13811 3.13811 3.13811 3.13811 3.13811 
-10 10 10 10 10 10 10 10 10 10 
-10 10 10 10 10 10 10 10 10 10 
-10 10 10 10 10 10 10 10 10 10 
-10 10 10 10 10 10 10 10 10 10 
-];
-
-deme_0000000_deme_ResB_0000020 = [ ...
-10 10 10 10 10 10 10 10 10 10 
-2010 2010 2010 2010 2010 2010 2010 2010 2010 2010 
-10 10 10 10 10 10 10 10 10 10 
-10 10 10 10 10 10 10 10 10 10 
-10 10 10 10 10 10 10 10 10 10 
-1.21577 1.21577 1.21577 1.21577 1.21577 1.21577 1.21577 1.21577 1.21577 1.21577 
-10 10 10 10 10 10 10 10 10 10 
-10 10 10 10 10 10 10 10 10 10 
-10 10 10 10 10 10 10 10 10 10 
-10 10 10 10 10 10 10 10 10 10 
-];
-
-deme_0000001_deme_ResB_0000020 = [ ...
-10 10 10 10 10 10 10 10 10 10 
-2010 2010 2010 2010 2010 2010 2010 2010 2010 2010 
-10 10 10 10 10 10 10 10 10 10 
-10 10 10 10 10 10 10 10 10 10 
-10 10 10 10 10 10 10 10 10 10 
-1.21577 1.21577 1.21577 1.21577 1.21577 1.21577 1.21577 1.21577 1.21577 1.21577 
-10 10 10 10 10 10 10 10 10 10 
-10 10 10 10 10 10 10 10 10 10 
-10 10 10 10 10 10 10 10 10 10 
-10 10 10 10 10 10 10 10 10 10 
-];
-
-deme_0000000_deme_ResB_0000030 = [ ...
-10 10 10 10 10 10 10 10 10 10 
-3010 3010 3010 3010 3010 3010 3010 3010 3010 3010 
-10 10 10 10 10 10 10 10 10 10 
-10 10 10 10 10 10 10 10 10 10 
-10 10 10 10 10 10 10 10 10 10 
-0.423912 0.423912 0.423912 0.423912 0.423912 0.423912 0.423912 0.423912 0.423912 0.423912 
-10 10 10 10 10 10 10 10 10 10 
-10 10 10 10 10 10 10 10 10 10 
-10 10 10 10 10 10 10 10 10 10 
-10 10 10 10 10 10 10 10 10 10 
-];
-
-deme_0000001_deme_ResB_0000030 = [ ...
-10 10 10 10 10 10 10 10 10 10 
-3010 3010 3010 3010 3010 3010 3010 3010 3010 3010 
-10 10 10 10 10 10 10 10 10 10 
-10 10 10 10 10 10 10 10 10 10 
-10 10 10 10 10 10 10 10 10 10 
-0.423912 0.423912 0.423912 0.423912 0.423912 0.423912 0.423912 0.423912 0.423912 0.423912 
-10 10 10 10 10 10 10 10 10 10 
-10 10 10 10 10 10 10 10 10 10 
-10 10 10 10 10 10 10 10 10 10 
-10 10 10 10 10 10 10 10 10 10 
-];
-
-deme_0000000_deme_ResB_0000040 = [ ...
-10 10 10 10 10 10 10 10 10 10 
-4010 4010 4010 4010 4010 4010 4010 4010 4010 4010 
-10 10 10 10 10 10 10 10 10 10 
-10 10 10 10 10 10 10 10 10 10 
-10 10 10 10 10 10 10 10 10 10 
-0.147809 0.147809 0.147809 0.147809 0.147809 0.147809 0.147809 0.147809 0.147809 0.147809 
-10 10 10 10 10 10 10 10 10 10 
-10 10 10 10 10 10 10 10 10 10 
-10 10 10 10 10 10 10 10 10 10 
-10 10 10 10 10 10 10 10 10 10 
-];
-
-deme_0000001_deme_ResB_0000040 = [ ...
-10 10 10 10 10 10 10 10 10 10 
-4110 4110 4110 4110 4110 4110 4110 4110 4110 4110 
-10 10 10 10 10 10 10 10 10 10 
-10 10 10 10 10 10 10 10 10 10 
-10 10 10 10 10 10 10 10 10 10 
-0.133028 0.133028 0.133028 0.133028 0.133028 0.133028 0.133028 0.133028 0.133028 0.133028 
-10 10 10 10 10 10 10 10 10 10 
-10 10 10 10 10 10 10 10 10 10 
-10 10 10 10 10 10 10 10 10 10 
-10 10 10 10 10 10 10 10 10 10 
-];
-
-deme_0000000_deme_ResB_0000050 = [ ...
-10 10 10 10 10 10 10 10 10 10 
-5010 5010 5010 5010 5010 5010 5010 5010 5010 5010 
-10 10 10 10 10 10 10 10 10 10 
-10 10 10 10 10 10 10 10 10 10 
-10 10 10 10 10 10 10 10 10 10 
-0.0515378 0.0515378 0.0515378 0.0515378 0.0515378 0.0515378 0.0515378 0.0515378 0.0515378 0.0515378 
-10 10 10 10 10 10 10 10 10 10 
-10 10 10 10 10 10 10 10 10 10 
-10 10 10 10 10 10 10 10 10 10 
-10 10 10 10 10 10 10 10 10 10 
-];
-
-deme_0000001_deme_ResB_0000050 = [ ...
-10 10 10 10 10 10 10 10 10 10 
-5110 5110 5110 5110 5110 5110 5110 5110 5110 5110 
-10 10 10 10 10 10 10 10 10 10 
-10 10 10 10 10 10 10 10 10 10 
-10 10 10 10 10 10 10 10 10 10 
-0.046384 0.046384 0.046384 0.046384 0.046384 0.046384 0.046384 0.046384 0.046384 0.046384 
-10 10 10 10 10 10 10 10 10 10 
-10 10 10 10 10 10 10 10 10 10 
-10 10 10 10 10 10 10 10 10 10 
-10 10 10 10 10 10 10 10 10 10 
-];
-
-deme_0000000_deme_ResB_0000060 = [ ...
-10 10 10 10 10 10 10 10 10 10 
-6010 6010 6010 6010 6010 6010 6010 6010 6010 6010 
-10 10 10 10 10 10 10 10 10 10 
-10 10 10 10 10 10 10 10 10 10 
-10 10 10 10 10 10 10 10 10 10 
-0.0179701 0.0179701 0.0179701 0.0179701 0.0179701 0.0179701 0.0179701 0.0179701 0.0179701 0.0179701 
-10 10 10 10 10 10 10 10 10 10 
-10 10 10 10 10 10 10 10 10 10 
-10 10 10 10 10 10 10 10 10 10 
-10 10 10 10 10 10 10 10 10 10 
-];
-
-deme_0000001_deme_ResB_0000060 = [ ...
-10 10 10 10 10 10 10 10 10 10 
-6010 6010 6010 6010 6010 6010 6010 6010 6010 6010 
-10 10 10 10 10 10 10 10 10 10 
-10 10 10 10 10 10 10 10 10 10 
-10 10 10 10 10 10 10 10 10 10 
-0.0179701 0.0179701 0.0179701 0.0179701 0.0179701 0.0179701 0.0179701 0.0179701 0.0179701 0.0179701 
-10 10 10 10 10 10 10 10 10 10 
-10 10 10 10 10 10 10 10 10 10 
-10 10 10 10 10 10 10 10 10 10 
-10 10 10 10 10 10 10 10 10 10 
-];
-
-deme_0000000_deme_ResB_0000070 = [ ...
-10 10 10 10 10 10 10 10 10 10 
-1010 1010 1010 1010 1010 1010 1010 1010 1010 1010 
-10 10 10 10 10 10 10 10 10 10 
-10 10 10 10 10 10 10 10 10 10 
-10 10 10 10 10 10 10 10 10 10 
-3.48678 3.48678 3.48678 3.48678 3.48678 3.48678 3.48678 3.48678 3.48678 3.48678 
-10 10 10 10 10 10 10 10 10 10 
-10 10 10 10 10 10 10 10 10 10 
-10 10 10 10 10 10 10 10 10 10 
-10 10 10 10 10 10 10 10 10 10 
-];
-
-deme_0000001_deme_ResB_0000070 = [ ...
-10 10 10 10 10 10 10 10 10 10 
-1010 1010 1010 1010 1010 1010 1010 1010 1010 1010 
-10 10 10 10 10 10 10 10 10 10 
-10 10 10 10 10 10 10 10 10 10 
-10 10 10 10 10 10 10 10 10 10 
-3.48678 3.48678 3.48678 3.48678 3.48678 3.48678 3.48678 3.48678 3.48678 3.48678 
-10 10 10 10 10 10 10 10 10 10 
-10 10 10 10 10 10 10 10 10 10 
-10 10 10 10 10 10 10 10 10 10 
-10 10 10 10 10 10 10 10 10 10 
-];
-
-deme_0000000_deme_ResB_0000080 = [ ...
-10 10 10 10 10 10 10 10 10 10 
-2010 2010 2010 2010 2010 2010 2010 2010 2010 2010 
-10 10 10 10 10 10 10 10 10 10 
-10 10 10 10 10 10 10 10 10 10 
-10 10 10 10 10 10 10 10 10 10 
-1.21577 1.21577 1.21577 1.21577 1.21577 1.21577 1.21577 1.21577 1.21577 1.21577 
-10 10 10 10 10 10 10 10 10 10 
-10 10 10 10 10 10 10 10 10 10 
-10 10 10 10 10 10 10 10 10 10 
-10 10 10 10 10 10 10 10 10 10 
-];
-
-deme_0000001_deme_ResB_0000080 = [ ...
-10 10 10 10 10 10 10 10 10 10 
-2010 2010 2010 2010 2010 2010 2010 2010 2010 2010 
-10 10 10 10 10 10 10 10 10 10 
-10 10 10 10 10 10 10 10 10 10 
-10 10 10 10 10 10 10 10 10 10 
-1.21577 1.21577 1.21577 1.21577 1.21577 1.21577 1.21577 1.21577 1.21577 1.21577 
-10 10 10 10 10 10 10 10 10 10 
-10 10 10 10 10 10 10 10 10 10 
-10 10 10 10 10 10 10 10 10 10 
-10 10 10 10 10 10 10 10 10 10 
-];
-
-deme_0000000_deme_ResB_0000090 = [ ...
-10 10 10 10 10 10 10 10 10 10 
-3010 3010 3010 3010 3010 3010 3010 3010 3010 3010 
-10 10 10 10 10 10 10 10 10 10 
-10 10 10 10 10 10 10 10 10 10 
-10 10 10 10 10 10 10 10 10 10 
-0.423912 0.423912 0.423912 0.423912 0.423912 0.423912 0.423912 0.423912 0.423912 0.423912 
-10 10 10 10 10 10 10 10 10 10 
-10 10 10 10 10 10 10 10 10 10 
-10 10 10 10 10 10 10 10 10 10 
-10 10 10 10 10 10 10 10 10 10 
-];
-
-deme_0000001_deme_ResB_0000090 = [ ...
-10 10 10 10 10 10 10 10 10 10 
-3010 3010 3010 3010 3010 3010 3010 3010 3010 3010 
-10 10 10 10 10 10 10 10 10 10 
-10 10 10 10 10 10 10 10 10 10 
-10 10 10 10 10 10 10 10 10 10 
-0.423912 0.423912 0.423912 0.423912 0.423912 0.423912 0.423912 0.423912 0.423912 0.423912 
-10 10 10 10 10 10 10 10 10 10 
-10 10 10 10 10 10 10 10 10 10 
-10 10 10 10 10 10 10 10 10 10 
-10 10 10 10 10 10 10 10 10 10 
-];
-
-deme_0000000_deme_ResB_0000100 = [ ...
-10 10 10 10 10 10 10 10 10 10 
-4010 4010 4010 4010 4010 4010 4010 4010 4010 4010 
-10 10 10 10 10 10 10 10 10 10 
-10 10 10 10 10 10 10 10 10 10 
-10 10 10 10 10 10 10 10 10 10 
-0.147809 0.147809 0.147809 0.147809 0.147809 0.147809 0.147809 0.147809 0.147809 0.147809 
-10 10 10 10 10 10 10 10 10 10 
-10 10 10 10 10 10 10 10 10 10 
-10 10 10 10 10 10 10 10 10 10 
-10 10 10 10 10 10 10 10 10 10 
-];
-
-deme_0000001_deme_ResB_0000100 = [ ...
-10 10 10 10 10 10 10 10 10 10 
-4010 4010 4010 4010 4010 4010 4010 4010 4010 4010 
-10 10 10 10 10 10 10 10 10 10 
-10 10 10 10 10 10 10 10 10 10 
-10 10 10 10 10 10 10 10 10 10 
-0.147809 0.147809 0.147809 0.147809 0.147809 0.147809 0.147809 0.147809 0.147809 0.147809 
-10 10 10 10 10 10 10 10 10 10 
-10 10 10 10 10 10 10 10 10 10 
-10 10 10 10 10 10 10 10 10 10 
-10 10 10 10 10 10 10 10 10 10 
-];
-

Copied: branches/interrupt/tests/energy_deme_level_res/expected/data/deme_spatial_resource_deme_ResB.m (from rev 3300, development/tests/energy_deme_level_res/expected/data/deme_spatial_resource_deme_ResB.m)
===================================================================
--- branches/interrupt/tests/energy_deme_level_res/expected/data/deme_spatial_resource_deme_ResB.m	                        (rev 0)
+++ branches/interrupt/tests/energy_deme_level_res/expected/data/deme_spatial_resource_deme_ResB.m	2009-06-25 21:17:10 UTC (rev 3340)
@@ -0,0 +1,287 @@
+deme_0000000_deme_ResB_0000000 = [ ...
+10 10 10 10 10 10 10 10 10 10 
+10 10 10 10 10 10 10 10 10 10 
+10 10 10 10 10 10 10 10 10 10 
+10 10 10 10 10 10 10 10 10 10 
+10 10 10 10 10 10 10 10 10 10 
+10 10 10 10 10 10 10 10 10 10 
+10 10 10 10 10 10 10 10 10 10 
+10 10 10 10 10 10 10 10 10 10 
+10 10 10 10 10 10 10 10 10 10 
+10 10 10 10 10 10 10 10 10 10 
+];
+
+
+deme_0000001_deme_ResB_0000000 = [ ...
+10 10 10 10 10 10 10 10 10 10 
+10 10 10 10 10 10 10 10 10 10 
+10 10 10 10 10 10 10 10 10 10 
+10 10 10 10 10 10 10 10 10 10 
+10 10 10 10 10 10 10 10 10 10 
+10 10 10 10 10 10 10 10 10 10 
+10 10 10 10 10 10 10 10 10 10 
+10 10 10 10 10 10 10 10 10 10 
+10 10 10 10 10 10 10 10 10 10 
+10 10 10 10 10 10 10 10 10 10 
+];
+
+deme_0000000_deme_ResB_0000010 = [ ...
+10 10 10 10 10 10 10 10 10 10 
+1110 1110 1110 1110 1110 1110 1110 1110 1110 1110 
+10 10 10 10 10 10 10 10 10 10 
+10 10 10 10 10 10 10 10 10 10 
+10 10 10 10 10 10 10 10 10 10 
+3.13811 3.13811 3.13811 3.13811 3.13811 3.13811 3.13811 3.13811 3.13811 3.13811 
+10 10 10 10 10 10 10 10 10 10 
+10 10 10 10 10 10 10 10 10 10 
+10 10 10 10 10 10 10 10 10 10 
+10 10 10 10 10 10 10 10 10 10 
+];
+
+deme_0000001_deme_ResB_0000010 = [ ...
+10 10 10 10 10 10 10 10 10 10 
+1110 1110 1110 1110 1110 1110 1110 1110 1110 1110 
+10 10 10 10 10 10 10 10 10 10 
+10 10 10 10 10 10 10 10 10 10 
+10 10 10 10 10 10 10 10 10 10 
+3.13811 3.13811 3.13811 3.13811 3.13811 3.13811 3.13811 3.13811 3.13811 3.13811 
+10 10 10 10 10 10 10 10 10 10 
+10 10 10 10 10 10 10 10 10 10 
+10 10 10 10 10 10 10 10 10 10 
+10 10 10 10 10 10 10 10 10 10 
+];
+
+deme_0000000_deme_ResB_0000020 = [ ...
+10 10 10 10 10 10 10 10 10 10 
+2010 2010 2010 2010 2010 2010 2010 2010 2010 2010 
+10 10 10 10 10 10 10 10 10 10 
+10 10 10 10 10 10 10 10 10 10 
+10 10 10 10 10 10 10 10 10 10 
+1.21577 1.21577 1.21577 1.21577 1.21577 1.21577 1.21577 1.21577 1.21577 1.21577 
+10 10 10 10 10 10 10 10 10 10 
+10 10 10 10 10 10 10 10 10 10 
+10 10 10 10 10 10 10 10 10 10 
+10 10 10 10 10 10 10 10 10 10 
+];
+
+deme_0000001_deme_ResB_0000020 = [ ...
+10 10 10 10 10 10 10 10 10 10 
+2010 2010 2010 2010 2010 2010 2010 2010 2010 2010 
+10 10 10 10 10 10 10 10 10 10 
+10 10 10 10 10 10 10 10 10 10 
+10 10 10 10 10 10 10 10 10 10 
+1.21577 1.21577 1.21577 1.21577 1.21577 1.21577 1.21577 1.21577 1.21577 1.21577 
+10 10 10 10 10 10 10 10 10 10 
+10 10 10 10 10 10 10 10 10 10 
+10 10 10 10 10 10 10 10 10 10 
+10 10 10 10 10 10 10 10 10 10 
+];
+
+deme_0000000_deme_ResB_0000030 = [ ...
+10 10 10 10 10 10 10 10 10 10 
+3010 3010 3010 3010 3010 3010 3010 3010 3010 3010 
+10 10 10 10 10 10 10 10 10 10 
+10 10 10 10 10 10 10 10 10 10 
+10 10 10 10 10 10 10 10 10 10 
+0.423912 0.423912 0.423912 0.423912 0.423912 0.423912 0.423912 0.423912 0.423912 0.423912 
+10 10 10 10 10 10 10 10 10 10 
+10 10 10 10 10 10 10 10 10 10 
+10 10 10 10 10 10 10 10 10 10 
+10 10 10 10 10 10 10 10 10 10 
+];
+
+deme_0000001_deme_ResB_0000030 = [ ...
+10 10 10 10 10 10 10 10 10 10 
+3010 3010 3010 3010 3010 3010 3010 3010 3010 3010 
+10 10 10 10 10 10 10 10 10 10 
+10 10 10 10 10 10 10 10 10 10 
+10 10 10 10 10 10 10 10 10 10 
+0.423912 0.423912 0.423912 0.423912 0.423912 0.423912 0.423912 0.423912 0.423912 0.423912 
+10 10 10 10 10 10 10 10 10 10 
+10 10 10 10 10 10 10 10 10 10 
+10 10 10 10 10 10 10 10 10 10 
+10 10 10 10 10 10 10 10 10 10 
+];
+
+deme_0000000_deme_ResB_0000040 = [ ...
+10 10 10 10 10 10 10 10 10 10 
+4010 4010 4010 4010 4010 4010 4010 4010 4010 4010 
+10 10 10 10 10 10 10 10 10 10 
+10 10 10 10 10 10 10 10 10 10 
+10 10 10 10 10 10 10 10 10 10 
+0.147809 0.147809 0.147809 0.147809 0.147809 0.147809 0.147809 0.147809 0.147809 0.147809 
+10 10 10 10 10 10 10 10 10 10 
+10 10 10 10 10 10 10 10 10 10 
+10 10 10 10 10 10 10 10 10 10 
+10 10 10 10 10 10 10 10 10 10 
+];
+
+deme_0000001_deme_ResB_0000040 = [ ...
+10 10 10 10 10 10 10 10 10 10 
+4110 4110 4110 4110 4110 4110 4110 4110 4110 4110 
+10 10 10 10 10 10 10 10 10 10 
+10 10 10 10 10 10 10 10 10 10 
+10 10 10 10 10 10 10 10 10 10 
+0.133028 0.133028 0.133028 0.133028 0.133028 0.133028 0.133028 0.133028 0.133028 0.133028 
+10 10 10 10 10 10 10 10 10 10 
+10 10 10 10 10 10 10 10 10 10 
+10 10 10 10 10 10 10 10 10 10 
+10 10 10 10 10 10 10 10 10 10 
+];
+
+deme_0000000_deme_ResB_0000050 = [ ...
+10 10 10 10 10 10 10 10 10 10 
+5010 5010 5010 5010 5010 5010 5010 5010 5010 5010 
+10 10 10 10 10 10 10 10 10 10 
+10 10 10 10 10 10 10 10 10 10 
+10 10 10 10 10 10 10 10 10 10 
+0.0515378 0.0515378 0.0515378 0.0515378 0.0515378 0.0515378 0.0515378 0.0515378 0.0515378 0.0515378 
+10 10 10 10 10 10 10 10 10 10 
+10 10 10 10 10 10 10 10 10 10 
+10 10 10 10 10 10 10 10 10 10 
+10 10 10 10 10 10 10 10 10 10 
+];
+
+deme_0000001_deme_ResB_0000050 = [ ...
+10 10 10 10 10 10 10 10 10 10 
+5110 5110 5110 5110 5110 5110 5110 5110 5110 5110 
+10 10 10 10 10 10 10 10 10 10 
+10 10 10 10 10 10 10 10 10 10 
+10 10 10 10 10 10 10 10 10 10 
+0.046384 0.046384 0.046384 0.046384 0.046384 0.046384 0.046384 0.046384 0.046384 0.046384 
+10 10 10 10 10 10 10 10 10 10 
+10 10 10 10 10 10 10 10 10 10 
+10 10 10 10 10 10 10 10 10 10 
+10 10 10 10 10 10 10 10 10 10 
+];
+
+deme_0000000_deme_ResB_0000060 = [ ...
+10 10 10 10 10 10 10 10 10 10 
+6010 6010 6010 6010 6010 6010 6010 6010 6010 6010 
+10 10 10 10 10 10 10 10 10 10 
+10 10 10 10 10 10 10 10 10 10 
+10 10 10 10 10 10 10 10 10 10 
+0.0179701 0.0179701 0.0179701 0.0179701 0.0179701 0.0179701 0.0179701 0.0179701 0.0179701 0.0179701 
+10 10 10 10 10 10 10 10 10 10 
+10 10 10 10 10 10 10 10 10 10 
+10 10 10 10 10 10 10 10 10 10 
+10 10 10 10 10 10 10 10 10 10 
+];
+
+deme_0000001_deme_ResB_0000060 = [ ...
+10 10 10 10 10 10 10 10 10 10 
+6010 6010 6010 6010 6010 6010 6010 6010 6010 6010 
+10 10 10 10 10 10 10 10 10 10 
+10 10 10 10 10 10 10 10 10 10 
+10 10 10 10 10 10 10 10 10 10 
+0.0179701 0.0179701 0.0179701 0.0179701 0.0179701 0.0179701 0.0179701 0.0179701 0.0179701 0.0179701 
+10 10 10 10 10 10 10 10 10 10 
+10 10 10 10 10 10 10 10 10 10 
+10 10 10 10 10 10 10 10 10 10 
+10 10 10 10 10 10 10 10 10 10 
+];
+
+deme_0000000_deme_ResB_0000070 = [ ...
+10 10 10 10 10 10 10 10 10 10 
+1010 1010 1010 1010 1010 1010 1010 1010 1010 1010 
+10 10 10 10 10 10 10 10 10 10 
+10 10 10 10 10 10 10 10 10 10 
+10 10 10 10 10 10 10 10 10 10 
+3.48678 3.48678 3.48678 3.48678 3.48678 3.48678 3.48678 3.48678 3.48678 3.48678 
+10 10 10 10 10 10 10 10 10 10 
+10 10 10 10 10 10 10 10 10 10 
+10 10 10 10 10 10 10 10 10 10 
+10 10 10 10 10 10 10 10 10 10 
+];
+
+deme_0000001_deme_ResB_0000070 = [ ...
+10 10 10 10 10 10 10 10 10 10 
+1010 1010 1010 1010 1010 1010 1010 1010 1010 1010 
+10 10 10 10 10 10 10 10 10 10 
+10 10 10 10 10 10 10 10 10 10 
+10 10 10 10 10 10 10 10 10 10 
+3.48678 3.48678 3.48678 3.48678 3.48678 3.48678 3.48678 3.48678 3.48678 3.48678 
+10 10 10 10 10 10 10 10 10 10 
+10 10 10 10 10 10 10 10 10 10 
+10 10 10 10 10 10 10 10 10 10 
+10 10 10 10 10 10 10 10 10 10 
+];
+
+deme_0000000_deme_ResB_0000080 = [ ...
+10 10 10 10 10 10 10 10 10 10 
+2010 2010 2010 2010 2010 2010 2010 2010 2010 2010 
+10 10 10 10 10 10 10 10 10 10 
+10 10 10 10 10 10 10 10 10 10 
+10 10 10 10 10 10 10 10 10 10 
+1.21577 1.21577 1.21577 1.21577 1.21577 1.21577 1.21577 1.21577 1.21577 1.21577 
+10 10 10 10 10 10 10 10 10 10 
+10 10 10 10 10 10 10 10 10 10 
+10 10 10 10 10 10 10 10 10 10 
+10 10 10 10 10 10 10 10 10 10 
+];
+
+deme_0000001_deme_ResB_0000080 = [ ...
+10 10 10 10 10 10 10 10 10 10 
+2010 2010 2010 2010 2010 2010 2010 2010 2010 2010 
+10 10 10 10 10 10 10 10 10 10 
+10 10 10 10 10 10 10 10 10 10 
+10 10 10 10 10 10 10 10 10 10 
+1.21577 1.21577 1.21577 1.21577 1.21577 1.21577 1.21577 1.21577 1.21577 1.21577 
+10 10 10 10 10 10 10 10 10 10 
+10 10 10 10 10 10 10 10 10 10 
+10 10 10 10 10 10 10 10 10 10 
+10 10 10 10 10 10 10 10 10 10 
+];
+
+deme_0000000_deme_ResB_0000090 = [ ...
+10 10 10 10 10 10 10 10 10 10 
+3010 3010 3010 3010 3010 3010 3010 3010 3010 3010 
+10 10 10 10 10 10 10 10 10 10 
+10 10 10 10 10 10 10 10 10 10 
+10 10 10 10 10 10 10 10 10 10 
+0.423912 0.423912 0.423912 0.423912 0.423912 0.423912 0.423912 0.423912 0.423912 0.423912 
+10 10 10 10 10 10 10 10 10 10 
+10 10 10 10 10 10 10 10 10 10 
+10 10 10 10 10 10 10 10 10 10 
+10 10 10 10 10 10 10 10 10 10 
+];
+
+deme_0000001_deme_ResB_0000090 = [ ...
+10 10 10 10 10 10 10 10 10 10 
+3010 3010 3010 3010 3010 3010 3010 3010 3010 3010 
+10 10 10 10 10 10 10 10 10 10 
+10 10 10 10 10 10 10 10 10 10 
+10 10 10 10 10 10 10 10 10 10 
+0.423912 0.423912 0.423912 0.423912 0.423912 0.423912 0.423912 0.423912 0.423912 0.423912 
+10 10 10 10 10 10 10 10 10 10 
+10 10 10 10 10 10 10 10 10 10 
+10 10 10 10 10 10 10 10 10 10 
+10 10 10 10 10 10 10 10 10 10 
+];
+
+deme_0000000_deme_ResB_0000100 = [ ...
+10 10 10 10 10 10 10 10 10 10 
+4010 4010 4010 4010 4010 4010 4010 4010 4010 4010 
+10 10 10 10 10 10 10 10 10 10 
+10 10 10 10 10 10 10 10 10 10 
+10 10 10 10 10 10 10 10 10 10 
+0.147809 0.147809 0.147809 0.147809 0.147809 0.147809 0.147809 0.147809 0.147809 0.147809 
+10 10 10 10 10 10 10 10 10 10 
+10 10 10 10 10 10 10 10 10 10 
+10 10 10 10 10 10 10 10 10 10 
+10 10 10 10 10 10 10 10 10 10 
+];
+
+deme_0000001_deme_ResB_0000100 = [ ...
+10 10 10 10 10 10 10 10 10 10 
+4010 4010 4010 4010 4010 4010 4010 4010 4010 4010 
+10 10 10 10 10 10 10 10 10 10 
+10 10 10 10 10 10 10 10 10 10 
+10 10 10 10 10 10 10 10 10 10 
+0.147809 0.147809 0.147809 0.147809 0.147809 0.147809 0.147809 0.147809 0.147809 0.147809 
+10 10 10 10 10 10 10 10 10 10 
+10 10 10 10 10 10 10 10 10 10 
+10 10 10 10 10 10 10 10 10 10 
+10 10 10 10 10 10 10 10 10 10 
+];
+

Deleted: branches/interrupt/tests/energy_deme_level_res/expected/data/deme_spatial_sleep.m
===================================================================
--- development/tests/energy_deme_level_res/expected/data/deme_spatial_sleep.m	2009-06-09 17:13:30 UTC (rev 3300)
+++ branches/interrupt/tests/energy_deme_level_res/expected/data/deme_spatial_sleep.m	2009-06-25 21:17:10 UTC (rev 3340)
@@ -1,287 +0,0 @@
-deme_0000000_sleep_0000000 = [ ...
-0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 
-];
-
-
-deme_0000001_sleep_0000000 = [ ...
-0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 
-];
-
-deme_0000000_sleep_0000010 = [ ...
-0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 
-];
-
-deme_0000001_sleep_0000010 = [ ...
-0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 
-];
-
-deme_0000000_sleep_0000020 = [ ...
-0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 
-];
-
-deme_0000001_sleep_0000020 = [ ...
-0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 
-];
-
-deme_0000000_sleep_0000030 = [ ...
-0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 
-];
-
-deme_0000001_sleep_0000030 = [ ...
-0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 
-];
-
-deme_0000000_sleep_0000040 = [ ...
-0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 
-];
-
-deme_0000001_sleep_0000040 = [ ...
-0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 
-];
-
-deme_0000000_sleep_0000050 = [ ...
-0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 
-];
-
-deme_0000001_sleep_0000050 = [ ...
-0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 
-];
-
-deme_0000000_sleep_0000060 = [ ...
-0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 1 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 1 0 0 0 
-0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 
-];
-
-deme_0000001_sleep_0000060 = [ ...
-0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 
-];
-
-deme_0000000_sleep_0000070 = [ ...
-0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 
-];
-
-deme_0000001_sleep_0000070 = [ ...
-0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 
-];
-
-deme_0000000_sleep_0000080 = [ ...
-0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 
-0 1 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 
-];
-
-deme_0000001_sleep_0000080 = [ ...
-0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 
-];
-
-deme_0000000_sleep_0000090 = [ ...
-0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 
-];
-
-deme_0000001_sleep_0000090 = [ ...
-0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 
-];
-
-deme_0000000_sleep_0000100 = [ ...
-0 0 0 0 0 0 0 0 0 0 
-1 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 
-0 0 1 0 0 0 0 0 0 0 
-0 0 0 1 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 
-];
-
-deme_0000001_sleep_0000100 = [ ...
-0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 1 0 0 
-0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 
-];
-

Copied: branches/interrupt/tests/energy_deme_level_res/expected/data/deme_spatial_sleep.m (from rev 3300, development/tests/energy_deme_level_res/expected/data/deme_spatial_sleep.m)
===================================================================
--- branches/interrupt/tests/energy_deme_level_res/expected/data/deme_spatial_sleep.m	                        (rev 0)
+++ branches/interrupt/tests/energy_deme_level_res/expected/data/deme_spatial_sleep.m	2009-06-25 21:17:10 UTC (rev 3340)
@@ -0,0 +1,287 @@
+deme_0000000_sleep_0000000 = [ ...
+0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 
+];
+
+
+deme_0000001_sleep_0000000 = [ ...
+0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 
+];
+
+deme_0000000_sleep_0000010 = [ ...
+0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 
+];
+
+deme_0000001_sleep_0000010 = [ ...
+0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 
+];
+
+deme_0000000_sleep_0000020 = [ ...
+0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 
+];
+
+deme_0000001_sleep_0000020 = [ ...
+0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 
+];
+
+deme_0000000_sleep_0000030 = [ ...
+0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 
+];
+
+deme_0000001_sleep_0000030 = [ ...
+0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 
+];
+
+deme_0000000_sleep_0000040 = [ ...
+0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 
+];
+
+deme_0000001_sleep_0000040 = [ ...
+0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 
+];
+
+deme_0000000_sleep_0000050 = [ ...
+0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 
+];
+
+deme_0000001_sleep_0000050 = [ ...
+0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 
+];
+
+deme_0000000_sleep_0000060 = [ ...
+0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 1 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 1 0 0 0 
+0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 
+];
+
+deme_0000001_sleep_0000060 = [ ...
+0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 
+];
+
+deme_0000000_sleep_0000070 = [ ...
+0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 
+];
+
+deme_0000001_sleep_0000070 = [ ...
+0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 
+];
+
+deme_0000000_sleep_0000080 = [ ...
+0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 
+0 1 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 
+];
+
+deme_0000001_sleep_0000080 = [ ...
+0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 
+];
+
+deme_0000000_sleep_0000090 = [ ...
+0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 
+];
+
+deme_0000001_sleep_0000090 = [ ...
+0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 
+];
+
+deme_0000000_sleep_0000100 = [ ...
+0 0 0 0 0 0 0 0 0 0 
+1 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 
+0 0 1 0 0 0 0 0 0 0 
+0 0 0 1 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 
+];
+
+deme_0000001_sleep_0000100 = [ ...
+0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 1 0 0 
+0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 
+];
+

Deleted: branches/interrupt/tests/energy_deme_level_res/expected/data/deme_task.dat
===================================================================
--- development/tests/energy_deme_level_res/expected/data/deme_task.dat	2009-06-09 17:13:30 UTC (rev 3300)
+++ branches/interrupt/tests/energy_deme_level_res/expected/data/deme_task.dat	2009-06-25 21:17:10 UTC (rev 3340)
@@ -1,19 +0,0 @@
-# Num orgs doing each task for each deme in population
-# Thu Jun  4 11:34:53 2009
-#  1: update
-#  2: Deme 0, Task 0
-#  3: Deme 0, Task 1
-#  4: Deme 1, Task 0
-#  5: Deme 1, Task 1
-
-0 0 0 0 0 
-10 4 4 0 0 
-20 15 15 0 0 
-30 31 31 0 0 
-40 57 57 0 0 
-50 96 96 0 0 
-60 100 100 0 0 
-70 4 4 3 3 
-80 14 14 10 10 
-90 29 29 34 34 
-100 61 61 59 59 

Copied: branches/interrupt/tests/energy_deme_level_res/expected/data/deme_task.dat (from rev 3300, development/tests/energy_deme_level_res/expected/data/deme_task.dat)
===================================================================
--- branches/interrupt/tests/energy_deme_level_res/expected/data/deme_task.dat	                        (rev 0)
+++ branches/interrupt/tests/energy_deme_level_res/expected/data/deme_task.dat	2009-06-25 21:17:10 UTC (rev 3340)
@@ -0,0 +1,19 @@
+# Num orgs doing each task for each deme in population
+# Thu Jun  4 11:34:53 2009
+#  1: update
+#  2: Deme 0, Task 0
+#  3: Deme 0, Task 1
+#  4: Deme 1, Task 0
+#  5: Deme 1, Task 1
+
+0 0 0 0 0 
+10 4 4 0 0 
+20 15 15 0 0 
+30 31 31 0 0 
+40 57 57 0 0 
+50 96 96 0 0 
+60 100 100 0 0 
+70 4 4 3 3 
+80 14 14 10 10 
+90 29 29 34 34 
+100 61 61 59 59 

Deleted: branches/interrupt/tests/energy_deme_level_res/expected/data/dominant.dat
===================================================================
--- development/tests/energy_deme_level_res/expected/data/dominant.dat	2009-06-09 17:13:30 UTC (rev 3300)
+++ branches/interrupt/tests/energy_deme_level_res/expected/data/dominant.dat	2009-06-25 21:17:10 UTC (rev 3340)
@@ -1,30 +0,0 @@
-# Avida Dominant Data
-# Thu Jun  4 11:34:53 2009
-#  1: Update
-#  2: Average Merit of the Dominant Genotype
-#  3: Average Gestation Time of the Dominant Genotype
-#  4: Average Fitness of the Dominant Genotype
-#  5: Repro Rate?
-#  6: Size of Dominant Genotype
-#  7: Copied Size of Dominant Genotype
-#  8: Executed Size of Dominant Genotype
-#  9: Abundance of Dominant Genotype
-# 10: Number of Births
-# 11: Number of Dominant Breed True?
-# 12: Dominant Gene Depth
-# 13: Dominant Breed In
-# 14: Max Fitness?
-# 15: Genotype ID of Dominant Genotype
-# 16: Name of the Dominant Genotype
-
-0 0.000000 0.000000 0.000000 0.000000 42 0.000000 0.000000 1 0 0 0 0 0.000000 1 042-aaaaa 
-10 3.83097 146 0.267123 0.00684932 42 42 39 4 1 1 0 0 0.267123 1 042-aaaaa 
-20 2.25175 146 0.267123 0.00684932 42 42 39 11 4 3 0 0 0.267123 1 042-aaaaa 
-30 1.65767 146 0.267123 0.00684932 42 42 39 20 7 6 0 0 0.267123 1 042-aaaaa 
-40 1.41391 146 0.267123 0.00684932 42 42 39 37 14 8 0 0 0.267123 1 042-aaaaa 
-50 1.30456 146 0.267123 0.00684932 42 42 39 45 6 1 0 0 0.267123 1 042-aaaaa 
-60 1.2547 146 0.267123 0.00684932 42 42 39 36 11 8 0 0 0.267606 1 042-aaaaa 
-70 3.91637 147 0.265306 0.00680272 42 42 39 6 2 2 0 0 0.265306 99 042-aaaag 
-80 2.28954 147 0.265306 0.00680272 42 42 39 13 6 2 0 0 0.265306 99 042-aaaag 
-90 1.70738 147 0.265306 0.00680272 42 42 39 22 9 7 0 0 0.265306 99 042-aaaag 
-100 1.45212 147 0.265306 0.00680272 42 42 39 28 6 2 0 0 0.265306 99 042-aaaag 

Copied: branches/interrupt/tests/energy_deme_level_res/expected/data/dominant.dat (from rev 3300, development/tests/energy_deme_level_res/expected/data/dominant.dat)
===================================================================
--- branches/interrupt/tests/energy_deme_level_res/expected/data/dominant.dat	                        (rev 0)
+++ branches/interrupt/tests/energy_deme_level_res/expected/data/dominant.dat	2009-06-25 21:17:10 UTC (rev 3340)
@@ -0,0 +1,30 @@
+# Avida Dominant Data
+# Thu Jun  4 11:34:53 2009
+#  1: Update
+#  2: Average Merit of the Dominant Genotype
+#  3: Average Gestation Time of the Dominant Genotype
+#  4: Average Fitness of the Dominant Genotype
+#  5: Repro Rate?
+#  6: Size of Dominant Genotype
+#  7: Copied Size of Dominant Genotype
+#  8: Executed Size of Dominant Genotype
+#  9: Abundance of Dominant Genotype
+# 10: Number of Births
+# 11: Number of Dominant Breed True?
+# 12: Dominant Gene Depth
+# 13: Dominant Breed In
+# 14: Max Fitness?
+# 15: Genotype ID of Dominant Genotype
+# 16: Name of the Dominant Genotype
+
+0 0.000000 0.000000 0.000000 0.000000 42 0.000000 0.000000 1 0 0 0 0 0.000000 1 042-aaaaa 
+10 3.83097 146 0.267123 0.00684932 42 42 39 4 1 1 0 0 0.267123 1 042-aaaaa 
+20 2.25175 146 0.267123 0.00684932 42 42 39 11 4 3 0 0 0.267123 1 042-aaaaa 
+30 1.65767 146 0.267123 0.00684932 42 42 39 20 7 6 0 0 0.267123 1 042-aaaaa 
+40 1.41391 146 0.267123 0.00684932 42 42 39 37 14 8 0 0 0.267123 1 042-aaaaa 
+50 1.30456 146 0.267123 0.00684932 42 42 39 45 6 1 0 0 0.267123 1 042-aaaaa 
+60 1.2547 146 0.267123 0.00684932 42 42 39 36 11 8 0 0 0.267606 1 042-aaaaa 
+70 3.91637 147 0.265306 0.00680272 42 42 39 6 2 2 0 0 0.265306 99 042-aaaag 
+80 2.28954 147 0.265306 0.00680272 42 42 39 13 6 2 0 0 0.265306 99 042-aaaag 
+90 1.70738 147 0.265306 0.00680272 42 42 39 22 9 7 0 0 0.265306 99 042-aaaag 
+100 1.45212 147 0.265306 0.00680272 42 42 39 28 6 2 0 0 0.265306 99 042-aaaag 

Deleted: branches/interrupt/tests/energy_deme_level_res/expected/data/instruction.dat
===================================================================
--- development/tests/energy_deme_level_res/expected/data/instruction.dat	2009-06-09 17:13:30 UTC (rev 3300)
+++ branches/interrupt/tests/energy_deme_level_res/expected/data/instruction.dat	2009-06-25 21:17:10 UTC (rev 3340)
@@ -1,48 +0,0 @@
-# Avida instruction execution data
-# Thu Jun  4 11:34:53 2009
-#  1: Update
-#  2: nop-A
-#  3: nop-B
-#  4: nop-C
-#  5: if-n-equ
-#  6: if-less
-#  7: pop
-#  8: push
-#  9: swap-stk
-# 10: swap
-# 11: shift-r
-# 12: shift-l
-# 13: inc
-# 14: dec
-# 15: add
-# 16: sub
-# 17: nand
-# 18: IO
-# 19: h-alloc
-# 20: h-divide
-# 21: h-copy
-# 22: h-search
-# 23: mov-head
-# 24: jmp-head
-# 25: get-head
-# 26: if-label
-# 27: set-flow
-# 28: sense-m100
-# 29: if-equ-0
-# 30: time
-# 31: sleep1
-# 32: sleep2
-# 33: sleep3
-# 34: sleep4
-
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-10 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 8 56 4 4 168 8 168 0 0 168 0 0 0 0 0 0 0 0 
-20 42 0 0 0 0 0 0 0 0 0 0 0 0 0 0 30 210 15 15 588 30 588 0 0 588 0 0 0 0 0 0 0 0 
-30 42 0 2 0 0 0 0 0 0 0 0 0 0 0 0 62 432 31 31 1258 62 1258 0 0 1258 0 0 0 0 0 0 0 0 
-40 42 0 3 0 0 0 0 0 43 0 0 0 0 0 0 115 795 57 57 2353 114 2353 0 0 2356 0 0 0 0 0 0 0 0 
-50 52 0 9 2 0 0 2 0 0 3 0 0 0 0 0 194 1332 96 96 3951 192 3951 0 0 3956 0 2 2 13 0 0 0 0 
-60 66 0 32 3 0 0 1 0 0 3 2 2 0 0 0 201 1379 100 100 4120 200 4120 0 11 4106 1 1 3 13 0 0 1 0 
-70 0 0 0 0 0 0 0 0 0 7 0 0 0 0 0 14 98 7 7 294 14 294 0 0 294 0 0 0 0 0 0 0 0 
-80 0 0 0 0 0 0 0 0 0 24 0 0 0 0 0 48 336 24 24 1012 48 1012 0 0 1012 4 0 0 0 0 0 0 0 
-90 0 2 5 0 0 0 0 4 0 63 0 3 0 0 0 122 875 63 63 2657 126 2657 2 0 2657 16 0 0 2 0 0 0 0 
-100 86 5 61 0 2 0 4 55 0 120 0 96 0 2 0 227 1654 120 120 4982 240 4982 4 1 4940 35 0 0 0 0 3 0 3 

Copied: branches/interrupt/tests/energy_deme_level_res/expected/data/instruction.dat (from rev 3300, development/tests/energy_deme_level_res/expected/data/instruction.dat)
===================================================================
--- branches/interrupt/tests/energy_deme_level_res/expected/data/instruction.dat	                        (rev 0)
+++ branches/interrupt/tests/energy_deme_level_res/expected/data/instruction.dat	2009-06-25 21:17:10 UTC (rev 3340)
@@ -0,0 +1,48 @@
+# Avida instruction execution data
+# Thu Jun  4 11:34:53 2009
+#  1: Update
+#  2: nop-A
+#  3: nop-B
+#  4: nop-C
+#  5: if-n-equ
+#  6: if-less
+#  7: pop
+#  8: push
+#  9: swap-stk
+# 10: swap
+# 11: shift-r
+# 12: shift-l
+# 13: inc
+# 14: dec
+# 15: add
+# 16: sub
+# 17: nand
+# 18: IO
+# 19: h-alloc
+# 20: h-divide
+# 21: h-copy
+# 22: h-search
+# 23: mov-head
+# 24: jmp-head
+# 25: get-head
+# 26: if-label
+# 27: set-flow
+# 28: sense-m100
+# 29: if-equ-0
+# 30: time
+# 31: sleep1
+# 32: sleep2
+# 33: sleep3
+# 34: sleep4
+
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+10 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 8 56 4 4 168 8 168 0 0 168 0 0 0 0 0 0 0 0 
+20 42 0 0 0 0 0 0 0 0 0 0 0 0 0 0 30 210 15 15 588 30 588 0 0 588 0 0 0 0 0 0 0 0 
+30 42 0 2 0 0 0 0 0 0 0 0 0 0 0 0 62 432 31 31 1258 62 1258 0 0 1258 0 0 0 0 0 0 0 0 
+40 42 0 3 0 0 0 0 0 43 0 0 0 0 0 0 115 795 57 57 2353 114 2353 0 0 2356 0 0 0 0 0 0 0 0 
+50 52 0 9 2 0 0 2 0 0 3 0 0 0 0 0 194 1332 96 96 3951 192 3951 0 0 3956 0 2 2 13 0 0 0 0 
+60 66 0 32 3 0 0 1 0 0 3 2 2 0 0 0 201 1379 100 100 4120 200 4120 0 11 4106 1 1 3 13 0 0 1 0 
+70 0 0 0 0 0 0 0 0 0 7 0 0 0 0 0 14 98 7 7 294 14 294 0 0 294 0 0 0 0 0 0 0 0 
+80 0 0 0 0 0 0 0 0 0 24 0 0 0 0 0 48 336 24 24 1012 48 1012 0 0 1012 4 0 0 0 0 0 0 0 
+90 0 2 5 0 0 0 0 4 0 63 0 3 0 0 0 122 875 63 63 2657 126 2657 2 0 2657 16 0 0 2 0 0 0 0 
+100 86 5 61 0 2 0 4 55 0 120 0 96 0 2 0 227 1654 120 120 4982 240 4982 4 1 4940 35 0 0 0 0 3 0 3 

Deleted: branches/interrupt/tests/energy_deme_level_res/expected/data/instruction_histogram.dat
===================================================================
--- development/tests/energy_deme_level_res/expected/data/instruction_histogram.dat	2009-06-09 17:13:30 UTC (rev 3300)
+++ branches/interrupt/tests/energy_deme_level_res/expected/data/instruction_histogram.dat	2009-06-25 21:17:10 UTC (rev 3340)
@@ -1,46 +0,0 @@
-#  1: Update
-#  2: nop-A
-#  3: nop-B
-#  4: nop-C
-#  5: if-n-equ
-#  6: if-less
-#  7: pop
-#  8: push
-#  9: swap-stk
-# 10: swap
-# 11: shift-r
-# 12: shift-l
-# 13: inc
-# 14: dec
-# 15: add
-# 16: sub
-# 17: nand
-# 18: IO
-# 19: h-alloc
-# 20: h-divide
-# 21: h-copy
-# 22: h-search
-# 23: mov-head
-# 24: jmp-head
-# 25: get-head
-# 26: if-label
-# 27: set-flow
-# 28: sense-m100
-# 29: if-equ-0
-# 30: time
-# 31: sleep1
-# 32: sleep2
-# 33: sleep3
-# 34: sleep4
-
-0 77 1 18 0 0 0 0 0 0 0 0 0 0 0 0 2 17 2 1 1 3 3 0 0 1 0 0 0 0 0 0 0 0 
-10 318 4 68 0 0 0 0 0 0 0 0 0 0 0 0 8 65 7 4 4 11 11 0 0 4 0 0 0 0 0 0 0 0 
-20 1106 14 232 0 0 0 0 0 0 0 0 0 1 0 0 28 225 22 14 15 36 37 0 0 14 0 1 0 0 0 0 0 0 
-30 2271 34 537 0 0 2 0 0 2 0 0 1 1 0 0 70 525 45 35 36 79 82 0 0 37 0 1 0 0 0 0 0 0 
-40 3971 71 1076 0 0 1 0 0 1 1 0 1 1 0 1 149 1067 82 71 73 152 155 0 0 76 0 2 0 0 0 0 1 1 
-50 5765 123 2070 3 0 2 5 0 0 4 2 0 2 0 1 295 2067 167 129 124 285 280 2 0 131 1 6 4 6 0 2 5 0 
-60 6784 115 1925 7 0 5 1 1 5 4 4 2 2 0 3 268 1911 160 126 116 276 269 1 1 121 3 3 7 6 1 4 2 1 
-70 467 8 112 0 0 0 0 0 0 8 0 0 0 0 0 16 118 10 8 8 18 18 0 0 8 2 0 0 0 0 0 0 0 
-80 1592 30 392 0 0 0 0 2 0 30 0 1 0 0 1 59 421 30 29 29 60 60 1 0 30 8 0 1 1 0 1 0 0 
-90 4347 87 1182 3 2 1 4 7 2 95 0 6 0 0 0 177 1266 95 82 80 177 177 5 2 82 31 1 4 4 0 2 0 2 
-100 8098 159 2375 4 3 0 11 17 1 186 2 24 1 4 4 338 2531 205 145 145 355 346 5 3 151 57 1 1 1 1 5 0 4 

Copied: branches/interrupt/tests/energy_deme_level_res/expected/data/instruction_histogram.dat (from rev 3300, development/tests/energy_deme_level_res/expected/data/instruction_histogram.dat)
===================================================================
--- branches/interrupt/tests/energy_deme_level_res/expected/data/instruction_histogram.dat	                        (rev 0)
+++ branches/interrupt/tests/energy_deme_level_res/expected/data/instruction_histogram.dat	2009-06-25 21:17:10 UTC (rev 3340)
@@ -0,0 +1,46 @@
+#  1: Update
+#  2: nop-A
+#  3: nop-B
+#  4: nop-C
+#  5: if-n-equ
+#  6: if-less
+#  7: pop
+#  8: push
+#  9: swap-stk
+# 10: swap
+# 11: shift-r
+# 12: shift-l
+# 13: inc
+# 14: dec
+# 15: add
+# 16: sub
+# 17: nand
+# 18: IO
+# 19: h-alloc
+# 20: h-divide
+# 21: h-copy
+# 22: h-search
+# 23: mov-head
+# 24: jmp-head
+# 25: get-head
+# 26: if-label
+# 27: set-flow
+# 28: sense-m100
+# 29: if-equ-0
+# 30: time
+# 31: sleep1
+# 32: sleep2
+# 33: sleep3
+# 34: sleep4
+
+0 77 1 18 0 0 0 0 0 0 0 0 0 0 0 0 2 17 2 1 1 3 3 0 0 1 0 0 0 0 0 0 0 0 
+10 318 4 68 0 0 0 0 0 0 0 0 0 0 0 0 8 65 7 4 4 11 11 0 0 4 0 0 0 0 0 0 0 0 
+20 1106 14 232 0 0 0 0 0 0 0 0 0 1 0 0 28 225 22 14 15 36 37 0 0 14 0 1 0 0 0 0 0 0 
+30 2271 34 537 0 0 2 0 0 2 0 0 1 1 0 0 70 525 45 35 36 79 82 0 0 37 0 1 0 0 0 0 0 0 
+40 3971 71 1076 0 0 1 0 0 1 1 0 1 1 0 1 149 1067 82 71 73 152 155 0 0 76 0 2 0 0 0 0 1 1 
+50 5765 123 2070 3 0 2 5 0 0 4 2 0 2 0 1 295 2067 167 129 124 285 280 2 0 131 1 6 4 6 0 2 5 0 
+60 6784 115 1925 7 0 5 1 1 5 4 4 2 2 0 3 268 1911 160 126 116 276 269 1 1 121 3 3 7 6 1 4 2 1 
+70 467 8 112 0 0 0 0 0 0 8 0 0 0 0 0 16 118 10 8 8 18 18 0 0 8 2 0 0 0 0 0 0 0 
+80 1592 30 392 0 0 0 0 2 0 30 0 1 0 0 1 59 421 30 29 29 60 60 1 0 30 8 0 1 1 0 1 0 0 
+90 4347 87 1182 3 2 1 4 7 2 95 0 6 0 0 0 177 1266 95 82 80 177 177 5 2 82 31 1 4 4 0 2 0 2 
+100 8098 159 2375 4 3 0 11 17 1 186 2 24 1 4 4 338 2531 205 145 145 355 346 5 3 151 57 1 1 1 1 5 0 4 

Deleted: branches/interrupt/tests/energy_deme_level_res/expected/data/resource.dat
===================================================================
--- development/tests/energy_deme_level_res/expected/data/resource.dat	2009-06-09 17:13:30 UTC (rev 3300)
+++ branches/interrupt/tests/energy_deme_level_res/expected/data/resource.dat	2009-06-25 21:17:10 UTC (rev 3340)
@@ -1,18 +0,0 @@
-# Avida resource data
-# Thu Jun  4 11:34:53 2009
-# First column gives the current update, all further columns give the quantity
-# of the particular resource at that update.
-#  1: Update
-#  2: global
-
-0 11.000000 
-10 71 
-20 262 
-30 662 
-40 1419 
-50 3005 
-60 5209 
-70 5281 
-80 5536 
-90 6291 
-100 7944 

Copied: branches/interrupt/tests/energy_deme_level_res/expected/data/resource.dat (from rev 3300, development/tests/energy_deme_level_res/expected/data/resource.dat)
===================================================================
--- branches/interrupt/tests/energy_deme_level_res/expected/data/resource.dat	                        (rev 0)
+++ branches/interrupt/tests/energy_deme_level_res/expected/data/resource.dat	2009-06-25 21:17:10 UTC (rev 3340)
@@ -0,0 +1,18 @@
+# Avida resource data
+# Thu Jun  4 11:34:53 2009
+# First column gives the current update, all further columns give the quantity
+# of the particular resource at that update.
+#  1: Update
+#  2: global
+
+0 11.000000 
+10 71 
+20 262 
+30 662 
+40 1419 
+50 3005 
+60 5209 
+70 5281 
+80 5536 
+90 6291 
+100 7944 

Deleted: branches/interrupt/tests/energy_deme_level_res/expected/data/sleep.dat
===================================================================
--- development/tests/energy_deme_level_res/expected/data/sleep.dat	2009-06-09 17:13:30 UTC (rev 3300)
+++ branches/interrupt/tests/energy_deme_level_res/expected/data/sleep.dat	2009-06-25 21:17:10 UTC (rev 3340)
@@ -1,17 +0,0 @@
-# Number of organisms sleeping
-
-# total number of organisms sleeping
-#  1: update
-#  2: DemeID 0
-#  3: DemeID 1
-
-10 0 0 
-20 0 0 
-30 0 0 
-40 0 0 
-50 0 0 
-60 2 0 
-70 0 0 
-80 1 0 
-90 0 0 
-100 3 1 

Copied: branches/interrupt/tests/energy_deme_level_res/expected/data/sleep.dat (from rev 3300, development/tests/energy_deme_level_res/expected/data/sleep.dat)
===================================================================
--- branches/interrupt/tests/energy_deme_level_res/expected/data/sleep.dat	                        (rev 0)
+++ branches/interrupt/tests/energy_deme_level_res/expected/data/sleep.dat	2009-06-25 21:17:10 UTC (rev 3340)
@@ -0,0 +1,17 @@
+# Number of organisms sleeping
+
+# total number of organisms sleeping
+#  1: update
+#  2: DemeID 0
+#  3: DemeID 1
+
+10 0 0 
+20 0 0 
+30 0 0 
+40 0 0 
+50 0 0 
+60 2 0 
+70 0 0 
+80 1 0 
+90 0 0 
+100 3 1 

Deleted: branches/interrupt/tests/energy_deme_level_res/expected/data/stats.dat
===================================================================
--- development/tests/energy_deme_level_res/expected/data/stats.dat	2009-06-09 17:13:30 UTC (rev 3300)
+++ branches/interrupt/tests/energy_deme_level_res/expected/data/stats.dat	2009-06-25 21:17:10 UTC (rev 3340)
@@ -1,26 +0,0 @@
-# Generic Statistics Data
-# Thu Jun  4 11:34:53 2009
-#  1: update
-#  2: average inferiority (energy)
-#  3: ave probability of any mutations in genome
-#  4: probability of any mutations in dom genome
-#  5: log(average fidelity)
-#  6: log(dominant fidelity)
-#  7: change in number of genotypes
-#  8: genotypic entropy
-#  9: species entropy
-# 10: depth of most reacent coalescence
-# 11: Total number of resamplings this generation
-# 12: Total number of organisms that failed to resample this generation
-
-0 0.000000 0.335790 0.335790 0.409157 0.409157 1 0.000000 0.000000 0 0 0 
-10 0 0.33579 0.33579 0.409157 0.409157 0 0 0 0 0 0 
-20 0.0542725 0.336759 0.33579 0.410617 0.409157 1 0.949594 0 0 0 0 
-30 0.0262377 0.336103 0.33579 0.409628 0.409157 2 1.50126 0 0 0 0 
-40 0.0184142 0.336045 0.33579 0.409541 0.409157 3 1.58348 0 0 0 0 
-50 0.017446 0.336245 0.33579 0.409842 0.409157 6 2.53803 0 0 0 0 
-60 0.021148 0.33613 0.33579 0.409668 0.409157 -1 2.98257 0 0 0 0 
-70 0 0.336483 0.33579 0.4102 0.409157 0 0.410116 0 0 0 0 
-80 0.000254745 0.336194 0.33579 0.409766 0.409157 4 1.65138 0 0 0 0 
-90 0.00156406 0.339703 0.33579 0.415066 0.409157 3 2.57671 0 0 0 0 
-100 0.0339996 0.340581 0.33579 0.416396 0.409157 6 3.40835 0 0 0 0 

Copied: branches/interrupt/tests/energy_deme_level_res/expected/data/stats.dat (from rev 3300, development/tests/energy_deme_level_res/expected/data/stats.dat)
===================================================================
--- branches/interrupt/tests/energy_deme_level_res/expected/data/stats.dat	                        (rev 0)
+++ branches/interrupt/tests/energy_deme_level_res/expected/data/stats.dat	2009-06-25 21:17:10 UTC (rev 3340)
@@ -0,0 +1,26 @@
+# Generic Statistics Data
+# Thu Jun  4 11:34:53 2009
+#  1: update
+#  2: average inferiority (energy)
+#  3: ave probability of any mutations in genome
+#  4: probability of any mutations in dom genome
+#  5: log(average fidelity)
+#  6: log(dominant fidelity)
+#  7: change in number of genotypes
+#  8: genotypic entropy
+#  9: species entropy
+# 10: depth of most reacent coalescence
+# 11: Total number of resamplings this generation
+# 12: Total number of organisms that failed to resample this generation
+
+0 0.000000 0.335790 0.335790 0.409157 0.409157 1 0.000000 0.000000 0 0 0 
+10 0 0.33579 0.33579 0.409157 0.409157 0 0 0 0 0 0 
+20 0.0542725 0.336759 0.33579 0.410617 0.409157 1 0.949594 0 0 0 0 
+30 0.0262377 0.336103 0.33579 0.409628 0.409157 2 1.50126 0 0 0 0 
+40 0.0184142 0.336045 0.33579 0.409541 0.409157 3 1.58348 0 0 0 0 
+50 0.017446 0.336245 0.33579 0.409842 0.409157 6 2.53803 0 0 0 0 
+60 0.021148 0.33613 0.33579 0.409668 0.409157 -1 2.98257 0 0 0 0 
+70 0 0.336483 0.33579 0.4102 0.409157 0 0.410116 0 0 0 0 
+80 0.000254745 0.336194 0.33579 0.409766 0.409157 4 1.65138 0 0 0 0 
+90 0.00156406 0.339703 0.33579 0.415066 0.409157 3 2.57671 0 0 0 0 
+100 0.0339996 0.340581 0.33579 0.416396 0.409157 6 3.40835 0 0 0 0 

Deleted: branches/interrupt/tests/energy_deme_level_res/expected/data/tasks.dat
===================================================================
--- development/tests/energy_deme_level_res/expected/data/tasks.dat	2009-06-09 17:13:30 UTC (rev 3300)
+++ branches/interrupt/tests/energy_deme_level_res/expected/data/tasks.dat	2009-06-25 21:17:10 UTC (rev 3340)
@@ -1,19 +0,0 @@
-# Avida tasks data
-# Thu Jun  4 11:34:53 2009
-# First column gives the current update, next columns give the number
-# of organisms that have the particular task as a component of their merit
-#  1: Update
-#  2: Echo
-#  3: Nand
-
-0 0 0 
-10 4 4 
-20 15 15 
-30 31 31 
-40 57 57 
-50 96 96 
-60 100 100 
-70 7 7 
-80 24 24 
-90 63 63 
-100 120 120 

Copied: branches/interrupt/tests/energy_deme_level_res/expected/data/tasks.dat (from rev 3300, development/tests/energy_deme_level_res/expected/data/tasks.dat)
===================================================================
--- branches/interrupt/tests/energy_deme_level_res/expected/data/tasks.dat	                        (rev 0)
+++ branches/interrupt/tests/energy_deme_level_res/expected/data/tasks.dat	2009-06-25 21:17:10 UTC (rev 3340)
@@ -0,0 +1,19 @@
+# Avida tasks data
+# Thu Jun  4 11:34:53 2009
+# First column gives the current update, next columns give the number
+# of organisms that have the particular task as a component of their merit
+#  1: Update
+#  2: Echo
+#  3: Nand
+
+0 0 0 
+10 4 4 
+20 15 15 
+30 31 31 
+40 57 57 
+50 96 96 
+60 100 100 
+70 7 7 
+80 24 24 
+90 63 63 
+100 120 120 

Deleted: branches/interrupt/tests/energy_deme_level_res/expected/data/tasks_exe.dat
===================================================================
--- development/tests/energy_deme_level_res/expected/data/tasks_exe.dat	2009-06-09 17:13:30 UTC (rev 3300)
+++ branches/interrupt/tests/energy_deme_level_res/expected/data/tasks_exe.dat	2009-06-25 21:17:10 UTC (rev 3340)
@@ -1,18 +0,0 @@
-# Avida tasks execution data
-# Thu Jun  4 11:34:53 2009
-# First column gives the current update, all further columns give the number
-# of times the particular task has been executed this update.
-#  1: Update
-#  2: Echo
-#  3: Nand
-
-10 40 8 
-20 150 30 
-30 308 62 
-40 567 114 
-50 943 192 
-60 972 197 
-70 63 14 
-80 216 48 
-90 563 120 
-100 1066 227 

Copied: branches/interrupt/tests/energy_deme_level_res/expected/data/tasks_exe.dat (from rev 3300, development/tests/energy_deme_level_res/expected/data/tasks_exe.dat)
===================================================================
--- branches/interrupt/tests/energy_deme_level_res/expected/data/tasks_exe.dat	                        (rev 0)
+++ branches/interrupt/tests/energy_deme_level_res/expected/data/tasks_exe.dat	2009-06-25 21:17:10 UTC (rev 3340)
@@ -0,0 +1,18 @@
+# Avida tasks execution data
+# Thu Jun  4 11:34:53 2009
+# First column gives the current update, all further columns give the number
+# of times the particular task has been executed this update.
+#  1: Update
+#  2: Echo
+#  3: Nand
+
+10 40 8 
+20 150 30 
+30 308 62 
+40 567 114 
+50 943 192 
+60 972 197 
+70 63 14 
+80 216 48 
+90 563 120 
+100 1066 227 

Deleted: branches/interrupt/tests/energy_deme_level_res/expected/data/time.dat
===================================================================
--- development/tests/energy_deme_level_res/expected/data/time.dat	2009-06-09 17:13:30 UTC (rev 3300)
+++ branches/interrupt/tests/energy_deme_level_res/expected/data/time.dat	2009-06-25 21:17:10 UTC (rev 3340)
@@ -1,18 +0,0 @@
-# Avida time data
-# Thu Jun  4 11:34:53 2009
-#  1: update
-#  2: avida time
-#  3: average generation
-#  4: num_executed?
-
-0 0.000000 0.000000 30 
-10 1.60476 2 90 
-20 5.80003 3.93333 330 
-30 12.4747 5.51613 810 
-40 20.3006 7.22807 1470 
-50 28.6114 9.05208 2790 
-60 37.1763 11.16 3000 
-70 39.4354 1.85714 150 
-80 43.5748 3.66667 540 
-90 50.592 5.33333 1590 
-100 59.2194 7.11667 3300 

Copied: branches/interrupt/tests/energy_deme_level_res/expected/data/time.dat (from rev 3300, development/tests/energy_deme_level_res/expected/data/time.dat)
===================================================================
--- branches/interrupt/tests/energy_deme_level_res/expected/data/time.dat	                        (rev 0)
+++ branches/interrupt/tests/energy_deme_level_res/expected/data/time.dat	2009-06-25 21:17:10 UTC (rev 3340)
@@ -0,0 +1,18 @@
+# Avida time data
+# Thu Jun  4 11:34:53 2009
+#  1: update
+#  2: avida time
+#  3: average generation
+#  4: num_executed?
+
+0 0.000000 0.000000 30 
+10 1.60476 2 90 
+20 5.80003 3.93333 330 
+30 12.4747 5.51613 810 
+40 20.3006 7.22807 1470 
+50 28.6114 9.05208 2790 
+60 37.1763 11.16 3000 
+70 39.4354 1.85714 150 
+80 43.5748 3.66667 540 
+90 50.592 5.33333 1590 
+100 59.2194 7.11667 3300 

Modified: branches/interrupt/tests/interruptModel_quorumSensing/config/events.cfg
===================================================================
--- branches/interrupt/tests/interruptModel_quorumSensing/config/events.cfg	2009-06-25 21:00:03 UTC (rev 3339)
+++ branches/interrupt/tests/interruptModel_quorumSensing/config/events.cfg	2009-06-25 21:17:10 UTC (rev 3340)
@@ -14,7 +14,7 @@
 ##############################################################################
 
 i InjectDemes
-u 20:20:end CompeteDemes_EnergyConserve
+u 10:10:end CompeteDemes_EnergyConserve  # this was orginally 20, but a bug was fixed and it need to be lowered
 
 # Print all of the standard data files...
 u 0:100:end PrintAverageData       # Save info about they average genotypes




More information about the Avida-cvs mailing list