[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