[Avida-cvs] [avida-svn] r867 - in development/source: actions analyze cpu event
brysonda at myxo.css.msu.edu
brysonda at myxo.css.msu.edu
Wed Aug 9 12:06:31 PDT 2006
Author: brysonda
Date: 2006-08-09 15:06:31 -0400 (Wed, 09 Aug 2006)
New Revision: 867
Modified:
development/source/actions/PrintActions.cc
development/source/analyze/cAnalyze.cc
development/source/analyze/cAnalyzeGenotype.cc
development/source/cpu/cCPUTestInfo.cc
development/source/cpu/cCPUTestInfo.h
development/source/cpu/cTestCPU.cc
development/source/cpu/cTestCPU.h
development/source/cpu/cTestUtil.cc
development/source/event/cEventManager.cc
Log:
Remove unused events and test cpu methods regarding TestThreads and PrintThreads. Neither of this methods did anything with the generated data from the test cpu. If a need for these arises in the future it will be better to re-implement them.
Modified: development/source/actions/PrintActions.cc
===================================================================
--- development/source/actions/PrintActions.cc 2006-08-09 18:27:04 UTC (rev 866)
+++ development/source/actions/PrintActions.cc 2006-08-09 19:06:31 UTC (rev 867)
@@ -1194,6 +1194,177 @@
};
+class cActionDumpFitnessGrid : public cAction
+{
+private:
+ cString m_filename;
+
+public:
+ cActionDumpFitnessGrid(cWorld* world, const cString& args) : cAction(world, args), m_filename("")
+ {
+ cString largs(args);
+ if (largs.GetSize()) m_filename = largs.PopWord();
+ }
+ const cString GetDescription() { return "DumpFitnessGrid [string fname='']"; }
+ void Process(cAvidaContext& ctx)
+ {
+ cString filename(m_filename);
+ if (filename == "") filename.Set("grid_fitness.%d.dat", m_world->GetStats().GetUpdate());
+ ofstream& fp = m_world->GetDataFileOFStream(filename);
+
+ for (int i = 0; i < m_world->GetPopulation().GetWorldX(); i++) {
+ for (int j = 0; j < m_world->GetPopulation().GetWorldY(); j++) {
+ cPopulationCell& cell = m_world->GetPopulation().GetCell(j * m_world->GetPopulation().GetWorldX() + i);
+ double fitness = (cell.IsOccupied()) ? cell.GetOrganism()->GetGenotype()->GetFitness() : 0.0;
+ fp << fitness << " ";
+ }
+ fp << endl;
+ }
+ m_world->GetDataFileManager().Remove(filename);
+ }
+};
+
+
+class cActionDumpGenotypeIDGrid : public cAction
+{
+private:
+ cString m_filename;
+
+public:
+ cActionDumpGenotypeIDGrid(cWorld* world, const cString& args) : cAction(world, args), m_filename("")
+ {
+ cString largs(args);
+ if (largs.GetSize()) m_filename = largs.PopWord();
+ }
+ const cString GetDescription() { return "DumpGenotypeIDGrid [string fname='']"; }
+ void Process(cAvidaContext& ctx)
+ {
+ cString filename(m_filename);
+ if (filename == "") filename.Set("grid_genotype_id.%d.dat", m_world->GetStats().GetUpdate());
+ ofstream& fp = m_world->GetDataFileOFStream(filename);
+
+ for (int i = 0; i < m_world->GetPopulation().GetWorldX(); i++) {
+ for (int j = 0; j < m_world->GetPopulation().GetWorldY(); j++) {
+ cPopulationCell& cell = m_world->GetPopulation().GetCell(j * m_world->GetPopulation().GetWorldX() + i);
+ int id = (cell.IsOccupied()) ? cell.GetOrganism()->GetGenotype()->GetID() : -1;
+ fp << id << " ";
+ }
+ fp << endl;
+ }
+ m_world->GetDataFileManager().Remove(filename);
+ }
+};
+
+
+class cActionDumpTaskGrid : public cAction
+{
+private:
+ cString m_filename;
+
+public:
+ cActionDumpTaskGrid(cWorld* world, const cString& args) : cAction(world, args), m_filename("")
+ {
+ cString largs(args);
+ if (largs.GetSize()) m_filename = largs.PopWord();
+ }
+ const cString GetDescription() { return "DumpTaskGrid [string fname='']"; }
+ void Process(cAvidaContext& ctx)
+ {
+ cString filename(m_filename);
+ if (filename == "") filename.Set("grid_task.%d.dat", m_world->GetStats().GetUpdate());
+ ofstream& fp = m_world->GetDataFileOFStream(filename);
+
+ cPopulation* pop = &m_world->GetPopulation();
+ cTestCPU* testcpu = m_world->GetHardwareManager().CreateTestCPU();
+
+ const int num_tasks = m_world->GetNumTasks();
+
+ for (int i = 0; i < pop->GetWorldX(); i++) {
+ for (int j = 0; j < pop->GetWorldY(); j++) {
+ int task_sum = 0;
+ int cell_num = i * pop->GetWorldX() + j;
+ if (pop->GetCell(cell_num).IsOccupied() == true) {
+ cOrganism* organism = pop->GetCell(cell_num).GetOrganism();
+ cCPUTestInfo test_info;
+ testcpu->TestGenome(ctx, test_info, organism->GetGenome());
+ cPhenotype& test_phenotype = test_info.GetTestPhenotype();
+ for (int k = 0; k < num_tasks; k++) {
+ if (test_phenotype.GetLastTaskCount()[k] > 0) task_sum += static_cast<int>(pow(2.0, k));
+ }
+ }
+ fp << task_sum << " ";
+ }
+ fp << endl;
+ }
+
+ delete testcpu;
+ m_world->GetDataFileManager().Remove(filename);
+ }
+};
+
+
+class cActionDumpDonorGrid : public cAction
+{
+private:
+ cString m_filename;
+
+public:
+ cActionDumpDonorGrid(cWorld* world, const cString& args) : cAction(world, args), m_filename("")
+ {
+ cString largs(args);
+ if (largs.GetSize()) m_filename = largs.PopWord();
+ }
+ const cString GetDescription() { return "DumpDonorGrid [string fname='']"; }
+ void Process(cAvidaContext& ctx)
+ {
+ cString filename(m_filename);
+ if (filename == "") filename.Set("grid_donor.%d.dat", m_world->GetStats().GetUpdate());
+ ofstream& fp = m_world->GetDataFileOFStream(filename);
+
+ for (int i = 0; i < m_world->GetPopulation().GetWorldX(); i++) {
+ for (int j = 0; j < m_world->GetPopulation().GetWorldY(); j++) {
+ cPopulationCell& cell = m_world->GetPopulation().GetCell(j * m_world->GetPopulation().GetWorldX() + i);
+ int donor = (cell.IsOccupied()) ? cell.GetOrganism()->GetPhenotype().IsDonorLast() : -1;
+ fp << donor << " ";
+ }
+ fp << endl;
+ }
+ m_world->GetDataFileManager().Remove(filename);
+ }
+};
+
+
+class cActionDumpReceiverGrid : public cAction
+{
+private:
+ cString m_filename;
+
+public:
+ cActionDumpReceiverGrid(cWorld* world, const cString& args) : cAction(world, args), m_filename("")
+ {
+ cString largs(args);
+ if (largs.GetSize()) m_filename = largs.PopWord();
+ }
+ const cString GetDescription() { return "DumpReceiverGrid [string fname='']"; }
+ void Process(cAvidaContext& ctx)
+ {
+ cString filename(m_filename);
+ if (filename == "") filename.Set("grid_receiver.%d.dat", m_world->GetStats().GetUpdate());
+ ofstream& fp = m_world->GetDataFileOFStream(filename);
+
+ for (int i = 0; i < m_world->GetPopulation().GetWorldX(); i++) {
+ for (int j = 0; j < m_world->GetPopulation().GetWorldY(); j++) {
+ cPopulationCell& cell = m_world->GetPopulation().GetCell(j * m_world->GetPopulation().GetWorldX() + i);
+ int recv = (cell.IsOccupied()) ? cell.GetOrganism()->GetPhenotype().IsReceiver() : -1;
+ fp << recv << " ";
+ }
+ fp << endl;
+ }
+ m_world->GetDataFileManager().Remove(filename);
+ }
+};
+
+
void RegisterPrintActions(cActionLibrary* action_lib)
{
// Stats Out Files
@@ -1244,6 +1415,11 @@
action_lib->Register<cActionPrintViableTasksData>("PrintViableTasksData");
action_lib->Register<cActionPrintTreeDepths>("PrintTreeDepths");
+ action_lib->Register<cActionDumpFitnessGrid>("DumpFitnessGrid");
+ action_lib->Register<cActionDumpGenotypeIDGrid>("DumpGenotypeIDGrid");
+ action_lib->Register<cActionDumpTaskGrid>("DumpTaskGrid");
+ action_lib->Register<cActionDumpDonorGrid>("DumpDonorGrid");
+ action_lib->Register<cActionDumpReceiverGrid>("DumpReceiverGrid");
// @DMB - The following actions are DEPRECATED aliases - These will be removed in 2.7.
action_lib->Register<cActionPrintAverageData>("print_average_data");
@@ -1289,4 +1465,10 @@
action_lib->Register<cActionPrintTaskSnapshot>("task_snapshot");
action_lib->Register<cActionPrintViableTasksData>("print_viable_tasks_data");
action_lib->Register<cActionPrintTreeDepths>("print_tree_depths");
+
+ action_lib->Register<cActionDumpFitnessGrid>("dump_fitness_grid");
+ action_lib->Register<cActionDumpGenotypeIDGrid>("dump_enotype_grid");
+ action_lib->Register<cActionDumpTaskGrid>("dump_task_grid");
+ action_lib->Register<cActionDumpDonorGrid>("dump_donor_grid");
+ action_lib->Register<cActionDumpReceiverGrid>("dump_receiver_grid");
}
Modified: development/source/analyze/cAnalyze.cc
===================================================================
--- development/source/analyze/cAnalyze.cc 2006-08-09 18:27:04 UTC (rev 866)
+++ development/source/analyze/cAnalyze.cc 2006-08-09 19:06:31 UTC (rev 867)
@@ -1669,7 +1669,6 @@
// Build the test info for printing.
cCPUTestInfo test_info;
- test_info.TestThreads();
test_info.SetTraceExecution(&trace_printer);
testcpu->TestGenome(m_ctx, test_info, genotype->GetGenome());
@@ -6140,7 +6139,6 @@
// Determine the fitness of the current sequence...
cGenome test_genome(test_sequence);
cCPUTestInfo test_info;
- test_info.TestThreads();
testcpu->TestGenome(m_ctx, test_info, test_genome);
const double fitness = test_info.GetGenotypeFitness();
Modified: development/source/analyze/cAnalyzeGenotype.cc
===================================================================
--- development/source/analyze/cAnalyzeGenotype.cc 2006-08-09 18:27:04 UTC (rev 866)
+++ development/source/analyze/cAnalyzeGenotype.cc 2006-08-09 19:06:31 UTC (rev 867)
@@ -342,7 +342,6 @@
{
// Build the test info for printing.
cCPUTestInfo test_info;
- test_info.TestThreads();
// test_info.TraceTaskOrder();
// @DMB - This does some 'interesting' things with the instruction set
Modified: development/source/cpu/cCPUTestInfo.cc
===================================================================
--- development/source/cpu/cCPUTestInfo.cc 2006-08-09 18:27:04 UTC (rev 866)
+++ development/source/cpu/cCPUTestInfo.cc 2006-08-09 19:06:31 UTC (rev 867)
@@ -18,8 +18,6 @@
cCPUTestInfo::cCPUTestInfo(int max_tests)
: generation_tests(max_tests) // These vars not reset on Clear()
- , test_threads(false)
- , print_threads(false)
, trace_execution(false)
, trace_task_order(false)
, use_random_inputs(false)
Modified: development/source/cpu/cCPUTestInfo.h
===================================================================
--- development/source/cpu/cCPUTestInfo.h 2006-08-09 18:27:04 UTC (rev 866)
+++ development/source/cpu/cCPUTestInfo.h 2006-08-09 19:06:31 UTC (rev 867)
@@ -32,8 +32,6 @@
private:
// Inputs...
const int generation_tests; // Maximum depth in generations to test
- bool test_threads; // Should a report of threading be saved?
- bool print_threads; // Should the report be printed?
bool trace_execution; // Should we trace this CPU?
bool trace_task_order; // Should we keep track of ordering of tasks?
bool use_random_inputs; // Should we give the organism random inputs?
@@ -59,16 +57,12 @@
void Clear();
// Input Setup
- void TestThreads(bool _test=true) { test_threads = _test; }
- void PrintThreads(bool _print=true) { print_threads = _print; }
void TraceTaskOrder(bool _trace=true) { trace_task_order = _trace; }
void UseRandomInputs(bool _rand=true) { use_random_inputs = _rand; }
void SetTraceExecution(cHardwareTracer *tracer = NULL);
// Input Accessors
int GetGenerationTests() const { return generation_tests; }
- bool GetTestThreads() const { return test_threads; }
- bool GetPrintThreads() const { return print_threads; }
bool GetTraceTaskOrder() const { return trace_task_order; }
bool GetUseRandomInputs() const { return use_random_inputs; }
bool GetTraceExecution() const { return trace_execution; }
Modified: development/source/cpu/cTestCPU.cc
===================================================================
--- development/source/cpu/cTestCPU.cc 2006-08-09 18:27:04 UTC (rev 866)
+++ development/source/cpu/cTestCPU.cc 2006-08-09 19:06:31 UTC (rev 867)
@@ -249,20 +249,3 @@
// All options have failed; just return false.
return false;
}
-
-
-void cTestCPU::TestThreads(cAvidaContext& ctx, const cGenome& genome)
-{
- cCPUTestInfo test_info;
- test_info.TestThreads();
- cTestCPU::TestGenome(ctx, test_info, genome);
-}
-
-
-void cTestCPU::PrintThreads(cAvidaContext& ctx, const cGenome& genome)
-{
- cCPUTestInfo test_info;
- test_info.TestThreads();
- test_info.PrintThreads();
- cTestCPU::TestGenome(ctx, test_info, genome);
-}
Modified: development/source/cpu/cTestCPU.h
===================================================================
--- development/source/cpu/cTestCPU.h 2006-08-09 18:27:04 UTC (rev 866)
+++ development/source/cpu/cTestCPU.h 2006-08-09 19:06:31 UTC (rev 867)
@@ -82,9 +82,6 @@
bool TestGenome(cAvidaContext& ctx, cCPUTestInfo& test_info, const cGenome& genome);
bool TestGenome(cAvidaContext& ctx, cCPUTestInfo& test_info, const cGenome & genome, std::ofstream& out_fp);
- void TestThreads(cAvidaContext& ctx, const cGenome& genome);
- void PrintThreads(cAvidaContext& ctx, const cGenome& genome);
-
inline int GetInput();
inline int GetInputAt(int & input_pointer);
inline int GetReceiveValue();
Modified: development/source/cpu/cTestUtil.cc
===================================================================
--- development/source/cpu/cTestUtil.cc 2006-08-09 18:27:04 UTC (rev 866)
+++ development/source/cpu/cTestUtil.cc 2006-08-09 19:06:31 UTC (rev 867)
@@ -43,7 +43,6 @@
cAvidaContext& ctx = world->GetDefaultContext();
cCPUTestInfo test_info;
- test_info.TestThreads();
testcpu->TestGenome(ctx, test_info, genome);
delete testcpu;
@@ -147,7 +146,6 @@
cAvidaContext& ctx = world->GetDefaultContext();
cCPUTestInfo test_info;
- test_info.TestThreads();
testcpu->TestGenome(ctx, test_info, genome);
delete testcpu;
Modified: development/source/event/cEventManager.cc
===================================================================
--- development/source/event/cEventManager.cc 2006-08-09 18:27:04 UTC (rev 866)
+++ development/source/event/cEventManager.cc 2006-08-09 19:06:31 UTC (rev 867)
@@ -155,277 +155,6 @@
};
-
-///// test_threads /////
-
-/**
-**/
-
-
-class cEvent_test_threads : public cEvent {
-private:
-public:
- const cString GetName() const { return "test_threads"; }
- const cString GetDescription() const { return "test_threads"; }
-
- void Configure(cWorld* world, const cString& in_args)
- {
- m_world = world;
- m_args = in_args;
- }
-
- ///// test_threads /////
- void Process(){
- cAvidaContext& ctx = m_world->GetDefaultContext();
-
- cTestCPU* testcpu = m_world->GetHardwareManager().CreateTestCPU();
- testcpu->TestThreads(ctx, m_world->GetClassificationManager().GetBestGenotype()->GetGenome());
- delete testcpu;
- }
-};
-
-///// print_threads /////
-
-/**
-**/
-
-
-class cEvent_print_threads : public cEvent {
-private:
-public:
- const cString GetName() const { return "print_threads"; }
- const cString GetDescription() const { return "print_threads"; }
-
- void Configure(cWorld* world, const cString& in_args)
- {
- m_world = world;
- m_args = in_args;
- }
- ///// print_threads /////
- void Process(){
- cAvidaContext& ctx = m_world->GetDefaultContext();
-
- cTestCPU* testcpu = m_world->GetHardwareManager().CreateTestCPU();
- testcpu->PrintThreads(ctx, m_world->GetClassificationManager().GetBestGenotype()->GetGenome() );
- delete testcpu;
- }
-};
-
-///// dump_fitness_grid /////
-
-/**
-* Writes out all fitness values of the organisms currently in the
- * population.
- *
- * The output file is called "fgrid.*.out", where '*' is replaced by the
- * number of the current update.
- **/
-
-
-class cEvent_dump_fitness_grid : public cEvent {
-private:
-public:
- const cString GetName() const { return "dump_fitness_grid"; }
- const cString GetDescription() const { return "dump_fitness_grid"; }
-
- void Configure(cWorld* world, const cString& in_args)
- {
- m_world = world;
- m_args = in_args;
- }
- ///// dump_fitness_grid /////
- void Process(){
- cString filename;
- filename.Set("fgrid.%05d.out", m_world->GetStats().GetUpdate());
- ofstream& fp = m_world->GetDataFileOFStream(filename);
- for (int i = 0; i < m_world->GetPopulation().GetWorldX(); i++) {
- for (int j = 0; j < m_world->GetPopulation().GetWorldY(); j++) {
- cPopulationCell & cell = m_world->GetPopulation().GetCell(j*m_world->GetPopulation().GetWorldX()+i);
- double fitness = (cell.IsOccupied()) ?
- cell.GetOrganism()->GetGenotype()->GetFitness() : 0.0;
- fp << fitness << " ";
- }
- fp << endl;
- }
- m_world->GetDataFileManager().Remove(filename);
- }
-};
-
-///// dump_genotype_grid /////
-
-/**
-* Writes out all genotype id values of the organisms currently in the
- * population.
- *
- * The output file is called "idgrid.*.out", where '*' is replaced by the
- * number of the current update.
- **/
-
-
-class cEvent_dump_genotype_grid : public cEvent {
-private:
-public:
- const cString GetName() const { return "dump_genotype_grid"; }
- const cString GetDescription() const { return "dump_genotype_grid"; }
-
- void Configure(cWorld* world, const cString& in_args)
- {
- m_world = world;
- m_args = in_args;
- }
- ///// dump_genotype_grid /////
- void Process(){
- cString filename;
- filename.Set("idgrid.%05d.out", m_world->GetStats().GetUpdate());
- ofstream& fp = m_world->GetDataFileOFStream(filename);
- for (int i = 0; i < m_world->GetPopulation().GetWorldX(); i++) {
- for (int j = 0; j < m_world->GetPopulation().GetWorldY(); j++) {
- cPopulationCell & cell = m_world->GetPopulation().GetCell(j*m_world->GetPopulation().GetWorldX()+i);
- int id = (cell.IsOccupied()) ?
- cell.GetOrganism()->GetGenotype()->GetID() : -1;
- fp << id << " ";
- }
- fp << endl;
- }
- m_world->GetDataFileManager().Remove(filename);
- }
-};
-
-///// dump_task_grid /////
-
-/**
-* Writes out a grid of tasks done by each organism
- * Tasks are encoded as a binary string first, and then converted into a
- * base 10 number
- **/
-
-
-class cEvent_dump_task_grid : public cEvent {
-private:
-public:
- const cString GetName() const { return "dump_task_grid"; }
- const cString GetDescription() const { return "dump_task_grid"; }
-
- void Configure(cWorld* world, const cString& in_args)
- {
- m_world = world;
- m_args = in_args;
- }
- ///// dump_task_grid /////
- void Process(){
- cString filename;
- filename.Set("task_grid_%d.dat", m_world->GetStats().GetUpdate());
- ofstream& fp = m_world->GetDataFileOFStream(filename);
-
- cPopulation* pop = &m_world->GetPopulation();
- cTestCPU* testcpu = m_world->GetHardwareManager().CreateTestCPU();
- cAvidaContext& ctx = m_world->GetDefaultContext();
-
- for (int i = 0; i < pop->GetWorldX(); i++) {
- for (int j = 0; j < pop->GetWorldY(); j++) {
- int task_sum = 0;
- int cell_num = i * pop->GetWorldX()+j;
- if (pop->GetCell(cell_num).IsOccupied() == true) {
- cOrganism* organism = pop->GetCell(cell_num).GetOrganism();
- cCPUTestInfo test_info;
- testcpu->TestGenome(ctx, test_info, organism->GetGenome());
- cPhenotype& test_phenotype = test_info.GetTestPhenotype();
- int num_tasks = m_world->GetEnvironment().GetTaskLib().GetSize();
- for (int k = 0; k < num_tasks; k++) {
- if (test_phenotype.GetLastTaskCount()[k] > 0) {
- task_sum = task_sum + static_cast<int>(pow(2.0, k));
- }
- }
- }
- fp << task_sum << " ";
- }
- fp << endl;
- }
-
- delete testcpu;
- m_world->GetDataFileManager().Remove(filename);
- }
-};
-
-///// dump_donor_grid /////
-
-/**
-* Writes out the grid of donor organisms in the population
- *
- * The output file is called "donor_grid.*.out", where '*' is replaced by the
- * number of the current update.
- **/
-
-
-class cEvent_dump_donor_grid : public cEvent {
-private:
-public:
- const cString GetName() const { return "dump_donor_grid"; }
- const cString GetDescription() const { return "dump_donor_grid"; }
-
- void Configure(cWorld* world, const cString& in_args)
- {
- m_world = world;
- m_args = in_args;
- }
-
- ///// dump_donor_grid /////
- void Process(){
- cString filename;
- filename.Set("donor_grid.%05d.out", m_world->GetStats().GetUpdate());
- ofstream& fp = m_world->GetDataFileOFStream(filename);
- for (int i = 0; i < m_world->GetPopulation().GetWorldX(); i++) {
- for (int j = 0; j < m_world->GetPopulation().GetWorldY(); j++) {
- cPopulationCell & cell = m_world->GetPopulation().GetCell(j*m_world->GetPopulation().GetWorldX()+i);
- int donor = cell.IsOccupied() ?
- cell.GetOrganism()->GetPhenotype().IsDonorLast() : -1;
- fp << donor << " ";
- }
- fp << endl;
- }
- m_world->GetDataFileManager().Remove(filename);
- }
-};
-
-///// dump_receiver_grid /////
-
-/**
-* Writes out the grid of organisms which received merit in the population
- *
- * The output file is called "receiver_grid.*.out", where '*' is replaced by the
- * number of the current update.
- **/
-
-
-class cEvent_dump_receiver_grid : public cEvent {
-private:
-public:
- const cString GetName() const { return "dump_receiver_grid"; }
- const cString GetDescription() const { return "dump_receiver_grid"; }
-
- void Configure(cWorld* world, const cString& in_args)
- {
- m_world = world;
- m_args = in_args;
- }
- ///// dump_receiver_grid /////
- void Process(){
- cString filename;
- filename.Set("receiver_grid.%05d.out", m_world->GetStats().GetUpdate());
- ofstream& fp = m_world->GetDataFileOFStream(filename);
- for (int i = 0; i < m_world->GetPopulation().GetWorldX(); i++) {
- for (int j = 0; j < m_world->GetPopulation().GetWorldY(); j++) {
- cPopulationCell & cell = m_world->GetPopulation().GetCell(j*m_world->GetPopulation().GetWorldX()+i);
- int receiver = cell.IsOccupied() ?
- cell.GetOrganism()->GetPhenotype().IsReceiver() : -1;
- fp << receiver << " ";
- }
- fp << endl;
- }
- m_world->GetDataFileManager().Remove(filename);
- }
-};
-
///// sever_grid_col /////
/**
@@ -1053,13 +782,6 @@
REGISTER(print_deme_stats);
REGISTER(copy_deme);
- REGISTER(test_threads);
- REGISTER(print_threads);
- REGISTER(dump_fitness_grid);
- REGISTER(dump_genotype_grid);
- REGISTER(dump_task_grid);
- REGISTER(dump_donor_grid);
- REGISTER(dump_receiver_grid);
REGISTER(sever_grid_col);
REGISTER(sever_grid_row);
REGISTER(join_grid_col);
More information about the Avida-cvs
mailing list