aboutsummaryrefslogtreecommitdiffstats
path: root/src/jcgp/modules/function
diff options
context:
space:
mode:
authorEduardo Pedroni <ep625@york.ac.uk>2014-03-23 18:05:13 +0000
committerEduardo Pedroni <ep625@york.ac.uk>2014-03-23 18:05:13 +0000
commit0c288cc1952809294c8d70d86b9f41b04878ac2e (patch)
treeef9671b711fe665a3156594663c083595861a4e6 /src/jcgp/modules/function
parentd3527a63e12c0e5288f1e7d2e2dc18e61d16b760 (diff)
Majorly refactored, node grid is fully implemented. About to attempt active path locking.
Diffstat (limited to 'src/jcgp/modules/function')
-rw-r--r--src/jcgp/modules/function/Arithmetic.java105
-rw-r--r--src/jcgp/modules/function/BitwiseLogic.java163
-rw-r--r--src/jcgp/modules/function/BooleanLogic.java163
-rw-r--r--src/jcgp/modules/function/Function.java12
-rw-r--r--src/jcgp/modules/function/FunctionSet.java45
5 files changed, 0 insertions, 488 deletions
diff --git a/src/jcgp/modules/function/Arithmetic.java b/src/jcgp/modules/function/Arithmetic.java
deleted file mode 100644
index aa5e9bf..0000000
--- a/src/jcgp/modules/function/Arithmetic.java
+++ /dev/null
@@ -1,105 +0,0 @@
-package jcgp.modules.function;
-
-import jcgp.exceptions.InvalidArgumentsException;
-import jcgp.population.Connection;
-
-public class Arithmetic {
-
- public static class Addition extends Function {
-
- private int arity = 2;
-
- @Override
- public Integer run(Connection... connections) {
- if (connections.length < arity) {
- throw new InvalidArgumentsException("Not enough connections were given.");
- } else {
- Integer arg1 = ((Integer) connections[0].getValue());
- Integer arg2 = ((Integer) connections[1].getValue());
- Integer result = arg1 + arg2;
-
- return result;
- }
- }
-
- @Override
- public int getArity() {
- return arity;
- }
- }
-
- public static class Subtraction extends Function {
-
- private int arity = 2;
-
- @Override
- public Integer run(Connection... connections) {
- if (connections.length < arity) {
- throw new InvalidArgumentsException("Not enough connections were given.");
- } else {
- Integer arg1 = ((Integer) connections[0].getValue());
- Integer arg2 = ((Integer) connections[1].getValue());
- Integer result = arg1 - arg2;
-
- return result;
- }
- }
-
- @Override
- public int getArity() {
- return arity;
- }
- }
-
- public static class Multiplication extends Function {
-
- private int arity = 2;
-
- @Override
- public Integer run(Connection... connections) {
- if (connections.length < arity) {
- throw new InvalidArgumentsException("Not enough connections were given.");
- } else {
- Integer arg1 = ((Integer) connections[0].getValue());
- Integer arg2 = ((Integer) connections[1].getValue());
- Integer result = arg1 * arg2;
-
- return result;
- }
- }
-
- @Override
- public int getArity() {
- return arity;
- }
- }
-
- public static class Division extends Function {
-
- private int arity = 2;
-
- @Override
- public Integer run(Connection... connections) {
- if (connections.length < arity) {
- throw new InvalidArgumentsException("Not enough connections were given.");
- } else {
- Integer arg1 = ((Integer) connections[0].getValue());
- Integer arg2 = ((Integer) connections[1].getValue());
- Integer result;
- if (arg2 == 0) {
- result = 0;
- } else {
- result = arg1 / arg2;
- }
-
- return result;
- }
- }
-
- @Override
- public int getArity() {
- return arity;
- }
- }
-
-}
diff --git a/src/jcgp/modules/function/BitwiseLogic.java b/src/jcgp/modules/function/BitwiseLogic.java
deleted file mode 100644
index c8452e6..0000000
--- a/src/jcgp/modules/function/BitwiseLogic.java
+++ /dev/null
@@ -1,163 +0,0 @@
-package jcgp.modules.function;
-
-import jcgp.exceptions.InvalidArgumentsException;
-import jcgp.population.Connection;
-
-public class BitwiseLogic {
-
- public static class And extends Function {
- private int arity = 2;
-
- @Override
- public Object run(Connection... connections) {
- if (connections.length < arity) {
- throw new InvalidArgumentsException("Not enough connections were given.");
- } else {
- int arg1 = ((int) connections[0].getValue());
- int arg2 = ((int) connections[1].getValue());
- int result = arg1 & arg2;
-
- return result;
- }
- }
-
- @Override
- public int getArity() {
- return arity;
- }
- }
-
- public static class Or extends Function {
- private int arity = 2;
-
- @Override
- public Object run(Connection... connections) {
- if (connections.length < arity) {
- throw new InvalidArgumentsException("Not enough connections were given.");
- } else {
- int arg1 = ((int) connections[0].getValue());
- int arg2 = ((int) connections[1].getValue());
- int result = arg1 | arg2;
-
- return result;
- }
- }
-
- @Override
- public int getArity() {
- return arity;
- }
- }
-
- public static class Not extends Function {
- private int arity = 1;
-
- @Override
- public Object run(Connection... connections) {
- if (connections.length < arity) {
- throw new InvalidArgumentsException("Not enough connections were given.");
- } else {
- int arg1 = ((int) connections[0].getValue());
- int result = ~arg1;
-
- return result;
- }
- }
-
- @Override
- public int getArity() {
- return arity;
- }
- }
-
- public static class Xor extends Function {
- private int arity = 2;
-
- @Override
- public Object run(Connection... connections) {
- if (connections.length < arity) {
- throw new InvalidArgumentsException("Not enough connections were given.");
- } else {
- int arg1 = ((int) connections[0].getValue());
- int arg2 = ((int) connections[1].getValue());
- int result = arg1 ^ arg2;
-
- return result;
- }
- }
-
- @Override
- public int getArity() {
- return arity;
- }
- }
-
- public static class Nand extends Function {
- private int arity = 2;
-
- @Override
- public Object run(Connection... connections) {
- if (connections.length < arity) {
- throw new InvalidArgumentsException("Not enough connections were given.");
- } else {
- int arg1 = ((int) connections[0].getValue());
- int arg2 = ((int) connections[1].getValue());
- int result = arg1 & arg2;
-
- return ~result;
- }
- }
-
- @Override
- public int getArity() {
- return arity;
- }
- }
-
- public static class Nor extends Function {
- private int arity = 2;
-
- @Override
- public Object run(Connection... connections) {
- if (connections.length < arity) {
- throw new InvalidArgumentsException("Not enough connections were given.");
- } else {
- int arg1 = ((int) connections[0].getValue());
- int arg2 = ((int) connections[1].getValue());
- int result = arg1 | arg2;
-
- return ~result;
- }
- }
-
- @Override
- public int getArity() {
- return arity;
- }
- }
-
- public static class Xnor extends Function {
- private int arity = 2;
-
- @Override
- public Object run(Connection... connections) {
- if (connections.length < arity) {
- throw new InvalidArgumentsException("Not enough connections were given.");
- } else {
- int arg1 = ((int) connections[0].getValue());
- int arg2 = ((int) connections[1].getValue());
- int result = arg1 ^ arg2;
-
- return ~result;
- }
- }
-
- @Override
- public int getArity() {
- return arity;
- }
- }
-
-
-
-}
diff --git a/src/jcgp/modules/function/BooleanLogic.java b/src/jcgp/modules/function/BooleanLogic.java
deleted file mode 100644
index f98d1db..0000000
--- a/src/jcgp/modules/function/BooleanLogic.java
+++ /dev/null
@@ -1,163 +0,0 @@
-package jcgp.modules.function;
-
-import jcgp.exceptions.InvalidArgumentsException;
-import jcgp.population.Connection;
-
-public class BooleanLogic {
-
- public static class And extends Function {
- private int arity = 2;
-
- @Override
- public Boolean run(Connection... connections) {
- if (connections.length < arity) {
- throw new InvalidArgumentsException("Not enough connections were given.");
- } else {
- Boolean arg1 = ((Boolean) connections[0].getValue());
- Boolean arg2 = ((Boolean) connections[1].getValue());
- Boolean result = arg1 && arg2;
-
- return result;
- }
- }
-
- @Override
- public int getArity() {
- return arity;
- }
- }
-
- public static class Or extends Function {
- private int arity = 2;
-
- @Override
- public Boolean run(Connection... connections) {
- if (connections.length < arity) {
- throw new InvalidArgumentsException("Not enough connections were given.");
- } else {
- Boolean arg1 = ((Boolean) connections[0].getValue());
- Boolean arg2 = ((Boolean) connections[1].getValue());
- Boolean result = arg1 || arg2;
-
- return result;
- }
- }
-
- @Override
- public int getArity() {
- return arity;
- }
- }
-
- public static class Not extends Function {
- private int arity = 1;
-
- @Override
- public Boolean run(Connection... connections) {
- if (connections.length < arity) {
- throw new InvalidArgumentsException("Not enough connections were given.");
- } else {
- Boolean arg1 = ((Boolean) connections[0].getValue());
- Boolean result = !arg1;
-
- return result;
- }
- }
-
- @Override
- public int getArity() {
- return arity;
- }
- }
-
- public static class Xor extends Function {
- private int arity = 2;
-
- @Override
- public Boolean run(Connection... connections) {
- if (connections.length < arity) {
- throw new InvalidArgumentsException("Not enough connections were given.");
- } else {
- Boolean arg1 = ((Boolean) connections[0].getValue());
- Boolean arg2 = ((Boolean) connections[1].getValue());
- Boolean result = arg1 ^ arg2;
-
- return result;
- }
- }
-
- @Override
- public int getArity() {
- return arity;
- }
- }
-
- public static class Nand extends Function {
- private int arity = 2;
-
- @Override
- public Boolean run(Connection... connections) {
- if (connections.length < arity) {
- throw new InvalidArgumentsException("Not enough connections were given.");
- } else {
- Boolean arg1 = ((Boolean) connections[0].getValue());
- Boolean arg2 = ((Boolean) connections[1].getValue());
- Boolean result = arg1 && arg2;
-
- return !result;
- }
- }
-
- @Override
- public int getArity() {
- return arity;
- }
- }
-
- public static class Nor extends Function {
- private int arity = 2;
-
- @Override
- public Boolean run(Connection... connections) {
- if (connections.length < arity) {
- throw new InvalidArgumentsException("Not enough connections were given.");
- } else {
- Boolean arg1 = ((Boolean) connections[0].getValue());
- Boolean arg2 = ((Boolean) connections[1].getValue());
- Boolean result = arg1 || arg2;
-
- return !result;
- }
- }
-
- @Override
- public int getArity() {
- return arity;
- }
- }
-
- public static class Xnor extends Function {
- private int arity = 2;
-
- @Override
- public Boolean run(Connection... connections) {
- if (connections.length < arity) {
- throw new InvalidArgumentsException("Not enough connections were given.");
- } else {
- Boolean arg1 = ((Boolean) connections[0].getValue());
- Boolean arg2 = ((Boolean) connections[1].getValue());
- Boolean result = arg1 ^ arg2;
-
- return !result;
- }
- }
-
- @Override
- public int getArity() {
- return arity;
- }
- }
-
-
-
-}
diff --git a/src/jcgp/modules/function/Function.java b/src/jcgp/modules/function/Function.java
deleted file mode 100644
index 3314c2f..0000000
--- a/src/jcgp/modules/function/Function.java
+++ /dev/null
@@ -1,12 +0,0 @@
-package jcgp.modules.function;
-
-import jcgp.exceptions.InvalidArgumentsException;
-import jcgp.population.Connection;
-
-public abstract class Function {
-
- public abstract Object run(Connection ... connections) throws InvalidArgumentsException;
-
- public abstract int getArity();
-
-}
diff --git a/src/jcgp/modules/function/FunctionSet.java b/src/jcgp/modules/function/FunctionSet.java
deleted file mode 100644
index fb3724f..0000000
--- a/src/jcgp/modules/function/FunctionSet.java
+++ /dev/null
@@ -1,45 +0,0 @@
-package jcgp.modules.function;
-
-/**
- *
- * TODO: if function set flexibility is desired (i.e. add more functions as the program runs)
- * an add function method should be created
- * this would lead to concurrency problems, so tread lightly!
- *
- *
- * @author Eduardo Pedroni
- *
- */
-public class FunctionSet {
- private Function[] functionList;
- private int maxArity = 0;
- private String name;
-
- public FunctionSet(String name, Function ... functions) {
- functionList = functions;
- for (Function function : functionList) {
- if (function.getArity() > maxArity) {
- maxArity = function.getArity();
- }
- }
-
- this.name = name;
-
- }
-
- public int getFunctionCount() {
- return functionList.length;
- }
-
- public Function getFunction(int index) {
- return functionList[index];
- }
-
- public int getMaxArity(){
- return maxArity;
- }
-
- public String getName() {
- return name;
- }
- } \ No newline at end of file