diff options
Diffstat (limited to 'src/jcgp/backend/function/BooleanLogic.java')
-rw-r--r-- | src/jcgp/backend/function/BooleanLogic.java | 199 |
1 files changed, 0 insertions, 199 deletions
diff --git a/src/jcgp/backend/function/BooleanLogic.java b/src/jcgp/backend/function/BooleanLogic.java deleted file mode 100644 index 9e7d1ff..0000000 --- a/src/jcgp/backend/function/BooleanLogic.java +++ /dev/null @@ -1,199 +0,0 @@ -package jcgp.backend.function; - - -import jcgp.backend.exceptions.InvalidArgumentsException; -import jcgp.backend.population.Connection; - -public class BooleanLogic extends FunctionSet { - - public BooleanLogic() { - name = "1-bit Logic"; - functionList = new Function[]{ - new And(), - new Or(), - new Not(), - new Xor(), - new Nand(), - new Nor(), - new Xnor()}; - - enableAll(); - } - - public static class And extends Function { - @Override - public Boolean run(Connection... connections) { - if (connections.length < 2) { - 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 2; - } - - @Override - public String getName() { - return "AND"; - } - } - - public static class Or extends Function { - @Override - public Boolean run(Connection... connections) { - if (connections.length < 2) { - 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 2; - } - - @Override - public String getName() { - return "OR"; - } - } - - public static class Not extends Function { - @Override - public Boolean run(Connection... connections) { - if (connections.length < 1) { - 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 1; - } - - @Override - public String getName() { - return "NOT"; - } - } - - public static class Xor extends Function { - @Override - public Boolean run(Connection... connections) { - if (connections.length < 2) { - 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 2; - } - - @Override - public String getName() { - return "XOR"; - } - } - - public static class Nand extends Function { - @Override - public Boolean run(Connection... connections) { - if (connections.length < 2) { - 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 2; - } - - @Override - public String getName() { - return "NAND"; - } - } - - public static class Nor extends Function { - @Override - public Boolean run(Connection... connections) { - if (connections.length < 2) { - 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 2; - } - - @Override - public String getName() { - return "NOR"; - } - } - - public static class Xnor extends Function { - @Override - public Boolean run(Connection... connections) { - if (connections.length < 2) { - 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 2; - } - - @Override - public String getName() { - return "XNOR"; - } - } - - - -} |