[Avida-SVN] r1954 - in branches/energy/source: actions main
beckma24 at myxo.css.msu.edu
beckma24 at myxo.css.msu.edu
Fri Aug 17 07:43:20 PDT 2007
Author: beckma24
Date: 2007-08-17 10:43:20 -0400 (Fri, 17 Aug 2007)
New Revision: 1954
Modified:
branches/energy/source/actions/PrintActions.cc
branches/energy/source/main/cPopulation.cc
branches/energy/source/main/cPopulation.h
Log:
Split up cPopulation::PrintDemeStats into subfuctions so that it is easier to the number of deme stat output files.
Modified: branches/energy/source/actions/PrintActions.cc
===================================================================
--- branches/energy/source/actions/PrintActions.cc 2007-08-17 12:11:50 UTC (rev 1953)
+++ branches/energy/source/actions/PrintActions.cc 2007-08-17 14:43:20 UTC (rev 1954)
@@ -2365,16 +2365,16 @@
}
};
-class cActionPrintDemeStats : public cAction
+class cActionPrintDemeAllStats : public cAction
{
public:
- cActionPrintDemeStats(cWorld* world, const cString& args) : cAction(world, args) { ; }
+ cActionPrintDemeAllStats(cWorld* world, const cString& args) : cAction(world, args) { ; }
static const cString GetDescription() { return "No Arguments"; }
void Process(cAvidaContext& ctx)
{
- m_world->GetPopulation().PrintDemeStats();
+ m_world->GetPopulation().PrintDemeAllStats();
}
};
@@ -2453,7 +2453,8 @@
// Population Out Files
action_lib->Register<cActionPrintPhenotypeData>("PrintPhenotypeData");
action_lib->Register<cActionPrintPhenotypeStatus>("PrintPhenotypeStatus");
- action_lib->Register<cActionPrintDemeStats>("PrintDemeStats");
+ action_lib->Register<cActionPrintDemeAllStats>("PrintDemeAllStats");
+ action_lib->Register<cActionPrintDemeAllStats>("PrintDemeStats"); //duplicate of previous
//Coalescence Clade Actions
action_lib->Register<cActionPrintCCladeCounts>("PrintCCladeCounts");
@@ -2526,7 +2527,7 @@
action_lib->Register<cActionPrintPhenotypeData>("print_number_phenotypes");
action_lib->Register<cActionPrintPhenotypeStatus>("print_phenotype_status");
action_lib->Register<cActionPrintDonationStats>("print_donation_stats");
- action_lib->Register<cActionPrintDemeStats>("print_deme_stats");
+ action_lib->Register<cActionPrintDemeAllStats>("print_deme_stats");
action_lib->Register<cActionPrintData>("print_data");
action_lib->Register<cActionPrintInstructionAbundanceHistogram>("print_instruction_abundance_histogram");
Modified: branches/energy/source/main/cPopulation.cc
===================================================================
--- branches/energy/source/main/cPopulation.cc 2007-08-17 12:11:50 UTC (rev 1953)
+++ branches/energy/source/main/cPopulation.cc 2007-08-17 14:43:20 UTC (rev 1954)
@@ -1481,59 +1481,105 @@
InjectClone( cell2_id, *(cell_array[cell1_id].GetOrganism()) );
}
+// Print out all statistics about individual demes
+void cPopulation::PrintDemeAllStats() {
+ PrintDemeFitness();
+ PrintDemeLifeFitness();
+ PrintDemeMerit();
+ PrintDemeGestationTime();
+ PrintDemeTasks();
+ PrintDemeDonor();
+ PrintDemeReceiver();
+ PrintDemeMutationRate();
+ PrintDemeResource();
+ PrintDemeInstructions();
+
+ if(m_world->GetConfig().ENERGY_ENABLED.Get() == 1) {
+ PrintDemeSpatialEnergyData();
+ PrintDemeSpatialSleepData();
+ }
+}
-// Print out statistics about individual demes
+void cPopulation::PrintDemeDonor() {
+ cStats& stats = m_world->GetStats();
+ const int num_demes = deme_array.GetSize();
+ cDataFile & df_donor = m_world->GetDataFile("deme_donor.dat");
+ df_donor.WriteComment("Num orgs doing doing a donate for each deme in population");
+ df_donor.WriteTimeStamp();
+ df_donor.Write(stats.GetUpdate(), "update");
-void cPopulation::PrintDemeStats()
-{
+ for (int deme_id = 0; deme_id < num_demes; deme_id++) {
+ cString comment;
+ const cDeme & cur_deme = deme_array[deme_id];
+ cDoubleSum single_deme_donor;
+
+ for (int i = 0; i < cur_deme.GetSize(); i++) {
+ int cur_cell = cur_deme.GetCellID(i);
+ if (cell_array[cur_cell].IsOccupied() == false) continue;
+ cPhenotype & phenotype = GetCell(cur_cell).GetOrganism()->GetPhenotype();
+ single_deme_donor.Add(phenotype.IsDonorLast());
+ }
+ comment.Set("Deme %d", deme_id);
+ df_donor.Write(single_deme_donor.Sum(), comment);
+ }
+ df_donor.Endl();
+}
+
+void cPopulation::PrintDemeFitness() {
cStats& stats = m_world->GetStats();
+ const int num_demes = deme_array.GetSize();
+ cDataFile & df_fit = m_world->GetDataFile("deme_fitness.dat");
+ df_fit.WriteComment("Average fitnesses for each deme in the population");
+ df_fit.WriteTimeStamp();
+ df_fit.Write(stats.GetUpdate(), "update");
- cDataFile & df_fit = m_world->GetDataFile("deme_fitness.dat");
- cDataFile & df_life_fit = m_world->GetDataFile("deme_lifetime_fitness.dat");
- cDataFile & df_merit = m_world->GetDataFile("deme_merit.dat");
+ for (int deme_id = 0; deme_id < num_demes; deme_id++) {
+ cString comment;
+ const cDeme & cur_deme = deme_array[deme_id];
+ cDoubleSum single_deme_fitness;
+
+ for (int i = 0; i < cur_deme.GetSize(); i++) {
+ int cur_cell = cur_deme.GetCellID(i);
+ if (cell_array[cur_cell].IsOccupied() == false) continue;
+ cPhenotype & phenotype = GetCell(cur_cell).GetOrganism()->GetPhenotype();
+ single_deme_fitness.Add(phenotype.GetFitness());
+ }
+ comment.Set("Deme %d", deme_id);
+ df_fit.Write(single_deme_fitness.Ave(), comment);
+ }
+ df_fit.Endl();
+}
+
+void cPopulation::PrintDemeGestationTime() {
+ cStats& stats = m_world->GetStats();
+ const int num_demes = deme_array.GetSize();
cDataFile & df_gest = m_world->GetDataFile("deme_gest_time.dat");
- cDataFile & df_task = m_world->GetDataFile("deme_task.dat");
- 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");
- df_merit.WriteComment("Average merits for each deme in population");
df_gest.WriteComment("Average gestation time for each deme in population");
- df_task.WriteComment("Num orgs doing each task for each deme in population");
- 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();
- df_merit.WriteTimeStamp();
df_gest.WriteTimeStamp();
- df_task.WriteTimeStamp();
- 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");
- df_merit.Write(stats.GetUpdate(), "update");
df_gest.Write(stats.GetUpdate(), "update");
- df_task.Write(stats.GetUpdate(), "update");
- 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");
-
+
+ for (int deme_id = 0; deme_id < num_demes; deme_id++) {
+ cString comment;
+ const cDeme & cur_deme = deme_array[deme_id];
+ cDoubleSum single_deme_gest_time;
+
+ for (int i = 0; i < cur_deme.GetSize(); i++) {
+ int cur_cell = cur_deme.GetCellID(i);
+ if (cell_array[cur_cell].IsOccupied() == false) continue;
+ cPhenotype & phenotype = GetCell(cur_cell).GetOrganism()->GetPhenotype();
+ single_deme_gest_time.Add(phenotype.GetGestationTime());
+ }
+ comment.Set("Deme %d", deme_id);
+ df_gest.Write(single_deme_gest_time.Ave(), comment);
+ }
+ df_gest.Endl();
+}
+
+void cPopulation::PrintDemeInstructions() {
+ cStats& stats = m_world->GetStats();
+ const int num_demes = deme_array.GetSize();
const int num_inst = m_world->GetNumInstructions();
- const int num_task = environment.GetNumTasks();
- cDoubleSum total_mut_rate;
-
- const int num_demes = deme_array.GetSize();
for (int deme_id = 0; deme_id < num_demes; deme_id++) {
cString filename;
filename.Set("deme_instruction-%d.dat", deme_id);
@@ -1544,16 +1590,7 @@
df_inst.WriteComment(comment);
df_inst.WriteTimeStamp();
df_inst.Write(stats.GetUpdate(), "update");
-
- cDoubleSum single_deme_fitness;
- cDoubleSum single_deme_life_fitness;
- cDoubleSum single_deme_merit;
- cDoubleSum single_deme_gest_time;
- cDoubleSum single_deme_donor;
- cDoubleSum single_deme_receiver;
- cDoubleSum single_deme_mut_rate;
-
- tArray<cIntSum> single_deme_task(num_task);
+
tArray<cIntSum> single_deme_inst(num_inst);
const cDeme & cur_deme = deme_array[deme_id];
@@ -1561,100 +1598,144 @@
int cur_cell = cur_deme.GetCellID(i);
if (cell_array[cur_cell].IsOccupied() == false) continue;
cPhenotype & phenotype = GetCell(cur_cell).GetOrganism()->GetPhenotype();
- single_deme_fitness.Add(phenotype.GetFitness());
- single_deme_life_fitness.Add(phenotype.GetLifeFitness());
- single_deme_merit.Add(phenotype.GetMerit().GetDouble());
- single_deme_gest_time.Add(phenotype.GetGestationTime());
- single_deme_donor.Add(phenotype.IsDonorLast());
- single_deme_receiver.Add(phenotype.IsReceiver());
- single_deme_mut_rate.Add(GetCell(cur_cell).GetOrganism()->MutationRates().GetCopyMutProb());
for (int j = 0; j < num_inst; j++) {
single_deme_inst[j].Add(phenotype.GetLastInstCount()[j]);
}
-
- for (int j = 0; j < num_task; j++) {
- // only interested in tasks is done once!
- if (phenotype.GetLastTaskCount()[j] > 0) {
- single_deme_task[j].Add(1);
- }
- }
}
- comment.Set("Deme %d", deme_id);
- df_fit.Write(single_deme_fitness.Ave(), comment);
- df_life_fit.Write(single_deme_life_fitness.Ave(), comment);
- df_merit.Write(single_deme_merit.Ave(), comment);
- df_gest.Write(single_deme_gest_time.Ave(), comment);
- df_donor.Write(single_deme_donor.Sum(), comment);
- df_receiver.Write(single_deme_receiver.Sum(), comment);
- df_mut_rates.Write(single_deme_mut_rate.Ave(), comment);
-
- total_mut_rate.Add(single_deme_mut_rate.Ave());
-
- for (int j = 0; j < num_task; j++) {
- comment.Set("Deme %d, Task %d", deme_id, j);
- df_task.Write((int) single_deme_task[j].Sum(), comment);
- }
-
for (int j = 0; j < num_inst; j++) {
comment.Set("Inst %d", j);
df_inst.Write((int) single_deme_inst[j].Sum(), comment);
}
- df_inst.Endl();
-
- GetDeme(deme_id).UpdateDemeRes();
- cResourceCount res = GetDeme(deme_id).GetDemeResourceCount();
- for(int j = 0; j < res.GetSize(); j++) {
- const char * tmp = res.GetResName(j);
- df_resources.Write(res.Get(j), cStringUtil::Stringf("Deme %d Resource %s", deme_id, tmp)); //comment);
- /*
- if((res.GetResourcesGeometry())[j] != nGeometry::GLOBAL) {
- // PrintDemeSpatialResData(res, j, deme_id);
- }*/
+ df_inst.Endl();
+ }
+}
+
+void cPopulation::PrintDemeLifeFitness() {
+ cStats& stats = m_world->GetStats();
+ const int num_demes = deme_array.GetSize();
+ cDataFile & df_life_fit = m_world->GetDataFile("deme_lifetime_fitness.dat");
+ df_life_fit.WriteComment("Average life fitnesses for each deme in the population");
+ df_life_fit.WriteTimeStamp();
+ df_life_fit.Write(stats.GetUpdate(), "update");
+
+ for (int deme_id = 0; deme_id < num_demes; deme_id++) {
+ cString comment;
+ const cDeme & cur_deme = deme_array[deme_id];
+ cDoubleSum single_deme_life_fitness;
+
+ for (int i = 0; i < cur_deme.GetSize(); i++) {
+ int cur_cell = cur_deme.GetCellID(i);
+ if (cell_array[cur_cell].IsOccupied() == false) continue;
+ cPhenotype & phenotype = GetCell(cur_cell).GetOrganism()->GetPhenotype();
+ single_deme_life_fitness.Add(phenotype.GetLifeFitness());
}
- }
-
- df_mut_rates.Write(total_mut_rate.Ave(), "Average deme mutation rate averaged across Demes.");
- /*
- if(m_world->GetConfig().ENERGY_ENABLED.Get() == 1) {
- PrintDemeSpatialEnergyData();
- // PrintDemeSpatialSleepData();
- }*/
-
- df_fit.Endl();
+ comment.Set("Deme %d", deme_id);
+ df_life_fit.Write(single_deme_life_fitness.Ave(), comment);
+ }
df_life_fit.Endl();
+}
+
+void cPopulation::PrintDemeMerit() {
+ cStats& stats = m_world->GetStats();
+ const int num_demes = deme_array.GetSize();
+ cDataFile & df_merit = m_world->GetDataFile("deme_merit.dat");
+ df_merit.WriteComment("Average merits for each deme in population");
+ df_merit.WriteTimeStamp();
+ df_merit.Write(stats.GetUpdate(), "update");
+
+ for (int deme_id = 0; deme_id < num_demes; deme_id++) {
+ cString comment;
+ const cDeme & cur_deme = deme_array[deme_id];
+ cDoubleSum single_deme_merit;
+
+ for (int i = 0; i < cur_deme.GetSize(); i++) {
+ int cur_cell = cur_deme.GetCellID(i);
+ if (cell_array[cur_cell].IsOccupied() == false) continue;
+ cPhenotype & phenotype = GetCell(cur_cell).GetOrganism()->GetPhenotype();
+ single_deme_merit.Add(phenotype.GetMerit().GetDouble());
+ }
+ comment.Set("Deme %d", deme_id);
+ df_merit.Write(single_deme_merit.Ave(), comment);
+ }
df_merit.Endl();
- df_gest.Endl();
- df_task.Endl();
- df_donor.Endl();
- df_receiver.Endl();
+}
+
+void cPopulation::PrintDemeMutationRate() {
+ cStats& stats = m_world->GetStats();
+ const int num_demes = deme_array.GetSize();
+ cDataFile & df_mut_rates = m_world->GetDataFile("deme_mut_rates.dat");
+ df_mut_rates.WriteComment("Average mutation rates for organisms in each deme");
+ df_mut_rates.WriteTimeStamp();
+ df_mut_rates.Write(stats.GetUpdate(), "update");
+ cDoubleSum total_mut_rate;
+
+ for (int deme_id = 0; deme_id < num_demes; deme_id++) {
+ cString comment;
+ const cDeme & cur_deme = deme_array[deme_id];
+ cDoubleSum single_deme_mut_rate;
+
+ for (int i = 0; i < cur_deme.GetSize(); i++) {
+ int cur_cell = cur_deme.GetCellID(i);
+ if (cell_array[cur_cell].IsOccupied() == false) continue;
+ single_deme_mut_rate.Add(GetCell(cur_cell).GetOrganism()->MutationRates().GetCopyMutProb());
+ }
+ comment.Set("Deme %d", deme_id);
+ df_mut_rates.Write(single_deme_mut_rate.Ave(), comment);
+ total_mut_rate.Add(single_deme_mut_rate.Ave());
+ }
+ df_mut_rates.Write(total_mut_rate.Ave(), "Average deme mutation rate averaged across Demes.");
df_mut_rates.Endl();
- df_resources.Endl();
}
-// Write spatial data to a file that can easily be read into Matlab
-void cPopulation::PrintDemeSpatialResData( cResourceCount res, const int i, const int deme_id){
- const char* tmpResName = res.GetResName(i);
- cString tmpfilename = cStringUtil::Stringf( "deme_spacial_resource_%s_%i.m", tmpResName, deme_id );
-// tmpfilename += res.GetResName(i) + ".m";
- cDataFile& df = m_world->GetDataFile(tmpfilename);
- cString UpdateStr = cStringUtil::Stringf( "deme_%07i_", deme_id ) + res.GetResName(i) +
- cStringUtil::Stringf( "_%07i", m_world->GetStats().GetUpdate() ) + " = [ ...";
+void cPopulation::PrintDemeReceiver() {
+ cStats& stats = m_world->GetStats();
+ const int num_demes = deme_array.GetSize();
+ cDataFile & df_receiver = m_world->GetDataFile("deme_receiver.dat");
+ df_receiver.WriteComment("Num orgs doing receiving a donate for each deme in population");
+ df_receiver.WriteTimeStamp();
+ df_receiver.Write(stats.GetUpdate(), "update");
- df.WriteRaw(UpdateStr);
+ for (int deme_id = 0; deme_id < num_demes; deme_id++) {
+ cString comment;
+ const cDeme & cur_deme = deme_array[deme_id];
+ cDoubleSum single_deme_receiver;
- cSpatialResCount sp_res = res.GetSpatialResource(i);
- int gridsize = sp_res.GetSize();
- int xsize = m_world->GetConfig().WORLD_X.Get();
+ for (int i = 0; i < cur_deme.GetSize(); i++) {
+ int cur_cell = cur_deme.GetCellID(i);
+ if (cell_array[cur_cell].IsOccupied() == false) continue;
+ cPhenotype & phenotype = GetCell(cur_cell).GetOrganism()->GetPhenotype();
+ single_deme_receiver.Add(phenotype.IsReceiver());
+ }
+ comment.Set("Deme %d", deme_id);
+ df_receiver.Write(single_deme_receiver.Sum(), comment);
+ }
+ df_receiver.Endl();
+}
- // write grid to file
+void cPopulation::PrintDemeResource() {
+ cStats& stats = m_world->GetStats();
+ const int num_demes = deme_array.GetSize();
+ cDataFile & df_resources = m_world->GetDataFile("deme_resources.dat");
+ df_resources.WriteComment("Avida deme resource data");
+ df_resources.WriteTimeStamp();
+ df_resources.Write(stats.GetUpdate(), "update");
- for (int j = 0; j < gridsize; j++) {
- df.WriteBlockElement(sp_res.GetAmount(j), j, xsize);
+ for (int deme_id = 0; deme_id < num_demes; deme_id++) {
+ cDeme & cur_deme = deme_array[deme_id];
+
+ cur_deme.UpdateDemeRes();
+ cResourceCount res = GetDeme(deme_id).GetDemeResourceCount();
+ for(int j = 0; j < res.GetSize(); j++) {
+ const char * tmp = res.GetResName(j);
+ df_resources.Write(res.Get(j), cStringUtil::Stringf("Deme %d Resource %s", deme_id, tmp)); //comment);
+ if((res.GetResourcesGeometry())[j] != nGeometry::GLOBAL) {
+ PrintDemeSpatialResData(res, j, deme_id);
+ }
+ }
}
- df.WriteRaw("];");
- df.Endl();
+ df_resources.Endl();
}
// Write spatial energy data to a file that can easily be read into Matlab
@@ -1685,6 +1766,30 @@
}
}
+// Write spatial data to a file that can easily be read into Matlab
+void cPopulation::PrintDemeSpatialResData( cResourceCount res, const int i, const int deme_id) const {
+ const char* tmpResName = res.GetResName(i);
+ cString tmpfilename = cStringUtil::Stringf( "deme_spacial_resource_%s_%i.m", tmpResName, deme_id );
+// tmpfilename += res.GetResName(i) + ".m";
+ cDataFile& df = m_world->GetDataFile(tmpfilename);
+ cString UpdateStr = cStringUtil::Stringf( "deme_%07i_", deme_id ) + res.GetResName(i) +
+ cStringUtil::Stringf( "_%07i", m_world->GetStats().GetUpdate() ) + " = [ ...";
+
+ df.WriteRaw(UpdateStr);
+
+ cSpatialResCount sp_res = res.GetSpatialResource(i);
+ int gridsize = sp_res.GetSize();
+ int xsize = m_world->GetConfig().WORLD_X.Get();
+
+ // write grid to file
+
+ for (int j = 0; j < gridsize; j++) {
+ df.WriteBlockElement(sp_res.GetAmount(j), j, xsize);
+ }
+ df.WriteRaw("];");
+// df.Endl();
+}
+
// Write spatial energy data to a file that can easily be read into Matlab
void cPopulation::PrintDemeSpatialSleepData() const {
int cellID = 0;
@@ -1710,15 +1815,47 @@
cellID++;
}
df.WriteRaw("];");
- df.Endl();
+// df.Endl();
}
}
+void cPopulation::PrintDemeTasks() {
+ cStats& stats = m_world->GetStats();
+ const int num_demes = deme_array.GetSize();
+ const int num_task = environment.GetNumTasks();
+ cDataFile & df_task = m_world->GetDataFile("deme_task.dat");
+ df_task.WriteComment("Num orgs doing each task for each deme in population");
+ df_task.WriteTimeStamp();
+ df_task.Write(stats.GetUpdate(), "update");
+
+ for (int deme_id = 0; deme_id < num_demes; deme_id++) {
+ cString comment;
+ const cDeme & cur_deme = deme_array[deme_id];
+ tArray<cIntSum> single_deme_task(num_task);
+
+ for (int i = 0; i < cur_deme.GetSize(); i++) {
+ int cur_cell = cur_deme.GetCellID(i);
+ if (cell_array[cur_cell].IsOccupied() == false) continue;
+ cPhenotype & phenotype = GetCell(cur_cell).GetOrganism()->GetPhenotype();
+ for (int j = 0; j < num_task; j++) {
+ // only interested if task is done once!
+ if (phenotype.GetLastTaskCount()[j] > 0) {
+ single_deme_task[j].Add(1);
+ }
+ }
+ }
+ for (int j = 0; j < num_task; j++) {
+ comment.Set("Deme %d, Task %d", deme_id, j);
+ df_task.Write((int) single_deme_task[j].Sum(), comment);
+ }
+ }
+ df_task.Endl();
+}
+
/**
* This function is responsible for adding an organism to a given lineage,
* and setting the organism's lineage label and the lineage pointer.
**/
-
void cPopulation::LineageSetupOrganism(cOrganism* organism, cLineage* lin, int lin_label, cGenotype* parent_genotype)
{
// If we have some kind of lineage control, adjust the default values passed in.
Modified: branches/energy/source/main/cPopulation.h
===================================================================
--- branches/energy/source/main/cPopulation.h 2007-08-17 12:11:50 UTC (rev 1953)
+++ branches/energy/source/main/cPopulation.h 2007-08-17 14:43:20 UTC (rev 1954)
@@ -182,10 +182,23 @@
void ResetDemes();
void CopyDeme(int deme1_id, int deme2_id);
void SpawnDeme(int deme1_id, int deme2_id=-1);
- void PrintDemeStats();
- void PrintDemeSpatialResData( cResourceCount res, const int i, const int deme_id);
+
+ // Deme-related stats methods
+ void PrintDemeAllStats();
+ void PrintDemeDonor();
+ void PrintDemeFitness();
+ void PrintDemeGestationTime();
+ void PrintDemeInstructions();
+ void PrintDemeLifeFitness();
+ void PrintDemeMerit();
+ void PrintDemeMutationRate();
+ void PrintDemeReceiver();
+ void PrintDemeResource();
+ void PrintDemeSpatialResData(cResourceCount res, const int i, const int deme_id) const;
void PrintDemeSpatialEnergyData() const;
void PrintDemeSpatialSleepData() const;
+ void PrintDemeTasks();
+
// Print donation stats
void PrintDonationStats();
More information about the Avida-cvs
mailing list