[Avida-SVN] r1872 - branches/energy_dev/source/main
beckma24 at myxo.css.msu.edu
beckma24 at myxo.css.msu.edu
Tue Jul 31 06:31:28 PDT 2007
Author: beckma24
Date: 2007-07-31 09:31:28 -0400 (Tue, 31 Jul 2007)
New Revision: 1872
Modified:
branches/energy_dev/source/main/cPopulation.cc
branches/energy_dev/source/main/cResourceCount.h
Log:
Checkpoint: pre relative cell IDs in deme-level resources
Modified: branches/energy_dev/source/main/cPopulation.cc
===================================================================
--- branches/energy_dev/source/main/cPopulation.cc 2007-07-31 00:17:09 UTC (rev 1871)
+++ branches/energy_dev/source/main/cPopulation.cc 2007-07-31 13:31:28 UTC (rev 1872)
@@ -48,6 +48,7 @@
#include "cPopulationCell.h"
#include "cProbSchedule.h"
#include "cResource.h"
+#include "cResourceCount.h"
#include "cSaleItem.h"
#include "cSpecies.h"
#include "cStats.h"
@@ -195,7 +196,7 @@
for(int i = 0; i < GetNumDemes(); i++) {
cResourceCount tmp_deme_res_count(num_deme_res);
GetDeme(i).GetDemeResourceCount() = tmp_deme_res_count;
- //TODO: make sure grid is the right grid
+ //TODO: make sure grid is the right grid/size
GetDeme(i).GetDemeResourceCount().ResizeSpatialGrids(world_x, world_y);
}
@@ -229,8 +230,7 @@
res->GetOutflowX2(), res->GetOutflowY1(),
res->GetOutflowY2(), res->GetCellListPtr(),
world->GetVerbosity() );
- // TODO: BB how should I keep stats on deme resources
-// m_world->GetStats().SetResourceName(deme_res_index, res->GetName());
+ // could add deme resources to global resource stats here
}
} else {
cerr<< "ERROR: Resource \"" << res->GetName() <<"\"is not a global or deme resource. Exit";
@@ -1469,6 +1469,7 @@
cDataFile & df_donor = m_world->GetDataFile("deme_donor.dat");
cDataFile & df_receiver = m_world->GetDataFile("deme_receiver.dat");
cDataFile & df_mut_rates = m_world->GetDataFile("deme_mut_rates.dat");
+ cDataFile & df_resources = m_world->GetDataFile("deme_resources.dat");
df_fit.WriteComment("Average fitnesses for each deme in the population");
df_life_fit.WriteComment("Average life fitnesses for each deme in the population");
@@ -1478,6 +1479,7 @@
df_donor.WriteComment("Num orgs doing doing a donate for each deme in population");
df_receiver.WriteComment("Num orgs doing receiving a donate for each deme in population");
df_mut_rates.WriteComment("Average mutation rates for organisms in each deme");
+ df_resources.WriteComment("Avida deme resource data");
df_fit.WriteTimeStamp();
df_life_fit.WriteTimeStamp();
@@ -1487,6 +1489,7 @@
df_donor.WriteTimeStamp();
df_receiver.WriteTimeStamp();
df_mut_rates.WriteTimeStamp();
+ df_resources.WriteTimeStamp();
df_fit.Write(stats.GetUpdate(), "update");
df_life_fit.Write(stats.GetUpdate(), "update");
@@ -1496,6 +1499,7 @@
df_donor.Write(stats.GetUpdate(), "update");
df_receiver.Write(stats.GetUpdate(), "update");
df_mut_rates.Write(stats.GetUpdate(), "update");
+ df_resources.Write(stats.GetUpdate(), "update");
const int num_inst = m_world->GetNumInstructions();
const int num_task = environment.GetNumTasks();
@@ -1571,6 +1575,13 @@
df_inst.Write((int) single_deme_inst[j].Sum(), comment);
}
df_inst.Endl();
+
+ cResourceCount res = GetDeme(deme_id).GetDemeResourceCount();
+ for(int j = 0; j < res.GetSize(); j++) {
+ //comment.Set(cStringUtil::Stringf("Deme %d Resources %d", deme_id, res.GetResName(j)));
+ const char * tmp = res.GetResName(j);
+ df_resources.Write(res.Get(j), cStringUtil::Stringf("Deme %d Resources %s", deme_id, tmp)); //comment);
+ }
}
df_mut_rates.Write(total_mut_rate.Ave(), "Average deme mutation rate averaged across Demes.");
@@ -1583,6 +1594,7 @@
df_donor.Endl();
df_receiver.Endl();
df_mut_rates.Endl();
+ df_resources.Endl();
}
Modified: branches/energy_dev/source/main/cResourceCount.h
===================================================================
--- branches/energy_dev/source/main/cResourceCount.h 2007-07-31 00:17:09 UTC (rev 1871)
+++ branches/energy_dev/source/main/cResourceCount.h 2007-07-31 13:31:28 UTC (rev 1872)
@@ -105,6 +105,7 @@
void ResizeSpatialGrids(int in_x, int in_y);
cSpatialResCount GetSpatialResource(int id) { return spatial_resource_count[id]; }
void ReinitializeResources();
+ cString GetResName(int id) { return resource_name[id]; }
};
More information about the Avida-cvs
mailing list