[Avida-SVN] r2302 - development/source/main

dknoester at myxo.css.msu.edu dknoester at myxo.css.msu.edu
Tue Feb 5 10:38:09 PST 2008


Author: dknoester
Date: 2008-02-05 13:38:08 -0500 (Tue, 05 Feb 2008)
New Revision: 2302

Modified:
   development/source/main/cTaskLib.cc
   development/source/main/cTaskLib.h
Log:
Added the add3 task.

Modified: development/source/main/cTaskLib.cc
===================================================================
--- development/source/main/cTaskLib.cc	2008-02-05 17:14:25 UTC (rev 2301)
+++ development/source/main/cTaskLib.cc	2008-02-05 18:38:08 UTC (rev 2302)
@@ -77,6 +77,7 @@
   
   if (name == "echo")      NewTask(name, "Echo", &cTaskLib::Task_Echo);
   else if (name == "add")  NewTask(name, "Add",  &cTaskLib::Task_Add);
+  else if (name == "add3")  NewTask(name, "Add3",  &cTaskLib::Task_Add3);  
   else if (name == "sub")  NewTask(name, "Sub",  &cTaskLib::Task_Sub);
   
   // All 1- and 2-Input Logic Functions
@@ -520,6 +521,19 @@
 }
 
 
+double cTaskLib::Task_Add3(cTaskContext& ctx) const
+{
+  const tBuffer<int>& input = ctx.GetInputBuffer();
+  const int output = ctx.GetOutputBuffer()[0];
+  for(int i=0; i<(input.GetNumStored()-2); ++i) {
+    if(output == (input[i] + input[i+1] + input[i+2])) {
+      return 1.0;
+    }
+  }
+  return 0.0;
+}
+
+
 double cTaskLib::Task_Sub(cTaskContext& ctx) const
 {
   const tBuffer<int>& input_buffer = ctx.GetInputBuffer();

Modified: development/source/main/cTaskLib.h
===================================================================
--- development/source/main/cTaskLib.h	2008-02-05 17:14:25 UTC (rev 2301)
+++ development/source/main/cTaskLib.h	2008-02-05 18:38:08 UTC (rev 2302)
@@ -95,6 +95,7 @@
 
   double Task_Echo(cTaskContext& ctx) const;
   double Task_Add(cTaskContext& ctx) const;
+  double Task_Add3(cTaskContext& ctx) const;
   double Task_Sub(cTaskContext& ctx) const;
 
   // All 1- and 2-Input Logic Functions




More information about the Avida-cvs mailing list