[Avida-SVN] r1869 - development/source/analyze

brysonda at myxo.css.msu.edu brysonda at myxo.css.msu.edu
Mon Jul 30 09:59:42 PDT 2007


Author: brysonda
Date: 2007-07-30 12:59:42 -0400 (Mon, 30 Jul 2007)
New Revision: 1869

Modified:
   development/source/analyze/cMutationalNeighborhood.cc
   development/source/analyze/cMutationalNeighborhood.h
Log:
MutationalNeighborhood: Fix a few last bugs. Add cleanup phase to reduce completed memory usage.

Modified: development/source/analyze/cMutationalNeighborhood.cc
===================================================================
--- development/source/analyze/cMutationalNeighborhood.cc	2007-07-30 14:28:40 UTC (rev 1868)
+++ development/source/analyze/cMutationalNeighborhood.cc	2007-07-30 16:59:42 UTC (rev 1869)
@@ -177,7 +177,7 @@
   m_onestep_delete.ResizeClear(m_base_genome.GetSize());
   
   m_twostep_point.ResizeClear(m_base_genome.GetSize());
-  m_twostep_insert.ResizeClear(m_base_genome.GetSize() + 2);
+  m_twostep_insert.ResizeClear(m_base_genome.GetSize() + 1);
   m_twostep_delete.ResizeClear(m_base_genome.GetSize());
   
   m_insert_point.ResizeClear(m_base_genome.GetSize() + 1);
@@ -667,12 +667,28 @@
   m_tt.task_size_knockout = m_tp.task_size_knockout + m_ti.task_size_knockout + m_td.task_size_knockout
                             + m_tip.task_size_knockout + m_tid.task_size_knockout + m_tdp.task_size_knockout;
   
+  // Unlock data for reading
+  m_rwlock.WriteUnlock();
   
-
-  m_rwlock.WriteUnlock();
+  // Cleanup state information
+  m_onestep_point.Resize(0);
+  m_onestep_insert.Resize(0);
+  m_onestep_delete.Resize(0);
+  
+  m_twostep_point.Resize(0);
+  m_twostep_insert.Resize(0);
+  m_twostep_delete.Resize(0);
+  
+  m_insert_point.Resize(0);
+  m_insert_delete.Resize(0);
+  m_delete_point.Resize(0);
+  
+  m_fitness_point.Resize(0, 0);
+  m_fitness_insert.Resize(0, 0);
+  m_fitness_delete.Resize(0, 0);
 }
 
-void cMutationalNeighborhood::AggregateOneStep(tArray<sStep>& steps, sOneStepAggregate osa)
+void cMutationalNeighborhood::AggregateOneStep(tArray<sStep>& steps, sOneStepAggregate& osa)
 {
   for (int i = 0; i < steps.GetSize(); i++) {
     sStep& odata = steps[i];
@@ -715,7 +731,7 @@
 }
 
 
-void cMutationalNeighborhood::AggregateTwoStep(tArray<sTwoStep>& steps, sTwoStepAggregate tsa)
+void cMutationalNeighborhood::AggregateTwoStep(tArray<sTwoStep>& steps, sTwoStepAggregate& tsa)
 {
   sPendFit* pend = NULL;
 

Modified: development/source/analyze/cMutationalNeighborhood.h
===================================================================
--- development/source/analyze/cMutationalNeighborhood.h	2007-07-30 14:28:40 UTC (rev 1868)
+++ development/source/analyze/cMutationalNeighborhood.h	2007-07-30 16:59:42 UTC (rev 1869)
@@ -142,7 +142,7 @@
     int inst;
     
     sPendFit(tMatrix<double>& in_fmat, int in_site, int in_inst) : fmat(in_fmat), site(in_site), inst(in_inst) { ; }
-    sPendFit(const sPendFit& in_pf) : fmat(in_pf.fmat), site(in_pf.site), inst(in_pf.site) { ; }
+    sPendFit(const sPendFit& in_pf) : fmat(in_pf.fmat), site(in_pf.site), inst(in_pf.inst) { ; }
     
     inline double GetFitness() { return fmat[site][inst]; }
   };
@@ -269,7 +269,7 @@
   void ProcessOneStepDelete(cAvidaContext& ctx, cTestCPU* testcpu, cCPUTestInfo& test_info, int cur_site);
   double ProcessOneStepGenome(cAvidaContext& ctx, cTestCPU* testcpu, cCPUTestInfo& test_info, const cGenome& mod_genome,
                               sStep& odata, int cur_site);
-  void AggregateOneStep(tArray<sStep>& steps, sOneStepAggregate osa);
+  void AggregateOneStep(tArray<sStep>& steps, sOneStepAggregate& osa);
 
   void ProcessTwoStepPoint(cAvidaContext& ctx, cTestCPU* testcpu, cCPUTestInfo& test_info, int cur_site, cGenome& mod_genome);
   void ProcessTwoStepInsert(cAvidaContext& ctx, cTestCPU* testcpu, cCPUTestInfo& test_info, int cur_site, cCPUMemory& mod_genome);
@@ -279,7 +279,7 @@
   void ProcessDeletePointCombo(cAvidaContext& ctx, cTestCPU* testcpu, cCPUTestInfo& test_info, int cur_site, cGenome& mod_genome);
   double ProcessTwoStepGenome(cAvidaContext& ctx, cTestCPU* testcpu, cCPUTestInfo& test_info, const cGenome& mod_genome,
                               sTwoStep& tdata, const sPendFit& cur, const sPendFit& oth);
-  void AggregateTwoStep(tArray<sTwoStep>& steps, sTwoStepAggregate osa);
+  void AggregateTwoStep(tArray<sTwoStep>& steps, sTwoStepAggregate& osa);
   
   void ProcessComplete(cAvidaContext& ctx);
   




More information about the Avida-cvs mailing list