[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