diff options
Diffstat (limited to 'src/jcgp/backend/function/BitwiseLogic.java')
-rw-r--r-- | src/jcgp/backend/function/BitwiseLogic.java | 506 |
1 files changed, 0 insertions, 506 deletions
diff --git a/src/jcgp/backend/function/BitwiseLogic.java b/src/jcgp/backend/function/BitwiseLogic.java deleted file mode 100644 index 2466f36..0000000 --- a/src/jcgp/backend/function/BitwiseLogic.java +++ /dev/null @@ -1,506 +0,0 @@ -package jcgp.backend.function; - -import jcgp.backend.population.Connection; - -public class BitwiseLogic extends FunctionSet { - - public BitwiseLogic() { - name = "32-bit Logic"; - functionList = new Function[]{ - new ConstantZero(), - new ConstantOne(), - new WireA(), - new WireB(), - new NotA(), - new NotB(), - new And(), - new AndNotA(), - new AndNotB(), - new Nor(), - new Xor(), - new Xnor(), - new Or(), - new OrNotA(), - new OrNotB(), - new Nand() -// new Mux1(), -// new Mux2(), -// new Mux3(), -// new Mux4() - }; - - enableAll(); - } - - public static class ConstantZero extends Function { - @Override - public UnsignedInteger run(Connection... connections) { - return new UnsignedInteger(0); - } - - @Override - public int getArity() { - return 0; - } - - @Override - public String getName() { - return "0"; - } - } - - public static class ConstantOne extends Function { - @Override - public UnsignedInteger run(Connection... connections) { - return new UnsignedInteger(0xFFFF); - } - - @Override - public int getArity() { - return 0; - } - - @Override - public String getName() { - return "1"; - } - } - - public static class WireA extends Function { - @Override - public UnsignedInteger run(Connection... connections) { - if (connections.length < getArity()) { - throw new IllegalArgumentException(getName() + " received " + connections.length + " connections but arity is " + getArity() + "."); - } else { - return ((UnsignedInteger) connections[0].getValue()); - } - } - - @Override - public int getArity() { - return 2; - } - - @Override - public String getName() { - return "Wire A"; - } - } - - public static class WireB extends Function { - @Override - public UnsignedInteger run(Connection... connections) { - if (connections.length < getArity()) { - throw new IllegalArgumentException(getName() + " received " + connections.length + " connections but arity is " + getArity() + "."); - } else { - return ((UnsignedInteger) connections[1].getValue()); - } - } - - @Override - public int getArity() { - return 2; - } - - @Override - public String getName() { - return "Wire B"; - } - } - - public static class NotA extends Function { - @Override - public UnsignedInteger run(Connection... connections) { - if (connections.length < getArity()) { - throw new IllegalArgumentException(getName() + " received " + connections.length + " connections but arity is " + getArity() + "."); - } else { - return new UnsignedInteger(~((UnsignedInteger) connections[0].getValue()).get()); - } - } - - @Override - public int getArity() { - return 2; - } - - @Override - public String getName() { - return "Not A"; - } - } - - public static class NotB extends Function { - @Override - public UnsignedInteger run(Connection... connections) { - if (connections.length < getArity()) { - throw new IllegalArgumentException(getName() + " received " + connections.length + " connections but arity is " + getArity() + "."); - } else { - return new UnsignedInteger(~((UnsignedInteger) connections[1].getValue()).get()); - } - } - - @Override - public int getArity() { - return 2; - } - - @Override - public String getName() { - return "Not B"; - } - } - - public static class And extends Function { - @Override - public UnsignedInteger run(Connection... connections) { - if (connections.length < getArity()) { - throw new IllegalArgumentException(getName() + " received " + connections.length + " connections but arity is " + getArity() + "."); - } else { - UnsignedInteger in0 = ((UnsignedInteger) connections[0].getValue()); - UnsignedInteger in1 = ((UnsignedInteger) connections[1].getValue()); - Integer result = in0.get() & in1.get(); - - return new UnsignedInteger(result); - } - } - - @Override - public int getArity() { - return 2; - } - - @Override - public String getName() { - return "And"; - } - } - - public static class AndNotA extends Function { - @Override - public UnsignedInteger run(Connection... connections) { - if (connections.length < getArity()) { - throw new IllegalArgumentException(getName() + " received " + connections.length + " connections but arity is " + getArity() + "."); - } else { - UnsignedInteger in0 = ((UnsignedInteger) connections[0].getValue()); - UnsignedInteger in1 = ((UnsignedInteger) connections[1].getValue()); - Integer result = ~(in0.get()) & in1.get(); - - return new UnsignedInteger(result); - } - } - - @Override - public int getArity() { - return 2; - } - - @Override - public String getName() { - return "And !A"; - } - } - - public static class AndNotB extends Function { - @Override - public UnsignedInteger run(Connection... connections) { - if (connections.length < getArity()) { - throw new IllegalArgumentException(getName() + " received " + connections.length + " connections but arity is " + getArity() + "."); - } else { - UnsignedInteger in0 = ((UnsignedInteger) connections[0].getValue()); - UnsignedInteger in1 = ((UnsignedInteger) connections[1].getValue()); - Integer result = in0.get() & ~(in1.get()); - - return new UnsignedInteger(result); - } - } - - @Override - public int getArity() { - return 2; - } - - @Override - public String getName() { - return "And !B"; - } - } - - public static class Nor extends Function { - @Override - public UnsignedInteger run(Connection... connections) { - if (connections.length < getArity()) { - throw new IllegalArgumentException(getName() + " received " + connections.length + " connections but arity is " + getArity() + "."); - } else { - UnsignedInteger in0 = ((UnsignedInteger) connections[0].getValue()); - UnsignedInteger in1 = ((UnsignedInteger) connections[1].getValue()); - Integer result = in0.get() | in1.get(); - - return new UnsignedInteger(~result); - } - } - - @Override - public int getArity() { - return 2; - } - - @Override - public String getName() { - return "Nor"; - } - } - - public static class Xor extends Function { - @Override - public UnsignedInteger run(Connection... connections) { - if (connections.length < getArity()) { - throw new IllegalArgumentException(getName() + " received " + connections.length + " connections but arity is " + getArity() + "."); - } else { - UnsignedInteger in0 = ((UnsignedInteger) connections[0].getValue()); - UnsignedInteger in1 = ((UnsignedInteger) connections[1].getValue()); - Integer result = in0.get() ^ in1.get(); - - return new UnsignedInteger(result); - } - } - - @Override - public int getArity() { - return 2; - } - - @Override - public String getName() { - return "Xor"; - } - } - - public static class Xnor extends Function { - @Override - public UnsignedInteger run(Connection... connections) { - if (connections.length < getArity()) { - throw new IllegalArgumentException(getName() + " received " + connections.length + " connections but arity is " + getArity() + "."); - } else { - UnsignedInteger in0 = ((UnsignedInteger) connections[0].getValue()); - UnsignedInteger in1 = ((UnsignedInteger) connections[1].getValue()); - Integer result = in0.get() ^ in1.get(); - - return new UnsignedInteger(~result); - } - } - - @Override - public int getArity() { - return 2; - } - - @Override - public String getName() { - return "Xnor"; - } - } - - public static class Or extends Function { - @Override - public UnsignedInteger run(Connection... connections) { - if (connections.length < getArity()) { - throw new IllegalArgumentException(getName() + " received " + connections.length + " connections but arity is " + getArity() + "."); - } else { - UnsignedInteger in0 = ((UnsignedInteger) connections[0].getValue()); - UnsignedInteger in1 = ((UnsignedInteger) connections[1].getValue()); - Integer result = in0.get() | in1.get(); - - return new UnsignedInteger(result); - } - } - - @Override - public int getArity() { - return 2; - } - - @Override - public String getName() { - return "Or"; - } - } - - public static class OrNotA extends Function { - @Override - public UnsignedInteger run(Connection... connections) { - if (connections.length < getArity()) { - throw new IllegalArgumentException(getName() + " received " + connections.length + " connections but arity is " + getArity() + "."); - } else { - UnsignedInteger in0 = ((UnsignedInteger) connections[0].getValue()); - UnsignedInteger in1 = ((UnsignedInteger) connections[1].getValue()); - Integer result = ~in0.get() | in1.get(); - - return new UnsignedInteger(result); - } - } - - @Override - public int getArity() { - return 2; - } - - @Override - public String getName() { - return "Or !A"; - } - } - - public static class OrNotB extends Function { - @Override - public UnsignedInteger run(Connection... connections) { - if (connections.length < getArity()) { - throw new IllegalArgumentException(getName() + " received " + connections.length + " connections but arity is " + getArity() + "."); - } else { - UnsignedInteger in0 = ((UnsignedInteger) connections[0].getValue()); - UnsignedInteger in1 = ((UnsignedInteger) connections[1].getValue()); - Integer result = in0.get() | ~in1.get(); - - return new UnsignedInteger(result); - } - } - - @Override - public int getArity() { - return 2; - } - - @Override - public String getName() { - return "Or !B"; - } - } - - public static class Nand extends Function { - @Override - public UnsignedInteger run(Connection... connections) { - if (connections.length < getArity()) { - throw new IllegalArgumentException(getName() + " received " + connections.length + " connections but arity is " + getArity() + "."); - } else { - UnsignedInteger in0 = ((UnsignedInteger) connections[0].getValue()); - UnsignedInteger in1 = ((UnsignedInteger) connections[1].getValue()); - Integer result = in0.get() & in1.get(); - - return new UnsignedInteger(~result); - } - } - - @Override - public int getArity() { - return 2; - } - - @Override - public String getName() { - return "Nand"; - } - } - - public static class Mux1 extends Function { - @Override - public UnsignedInteger run(Connection... connections) { - if (connections.length < getArity()) { - throw new IllegalArgumentException(getName() + " received " + connections.length + " connections but arity is " + getArity() + "."); - } else { - UnsignedInteger in0 = ((UnsignedInteger) connections[0].getValue()); - UnsignedInteger in1 = ((UnsignedInteger) connections[1].getValue()); - UnsignedInteger in2 = ((UnsignedInteger) connections[2].getValue()); - Integer result = ((in0.get() & ~in2.get()) | (in1.get() & in2.get())); - - return new UnsignedInteger(result); - } - } - - @Override - public int getArity() { - return 3; - } - - @Override - public String getName() { - return "Mux1"; - } - } - - public static class Mux2 extends Function { - @Override - public UnsignedInteger run(Connection... connections) { - if (connections.length < getArity()) { - throw new IllegalArgumentException(getName() + " received " + connections.length + " connections but arity is " + getArity() + "."); - } else { - UnsignedInteger in0 = ((UnsignedInteger) connections[0].getValue()); - UnsignedInteger in1 = ((UnsignedInteger) connections[1].getValue()); - UnsignedInteger in2 = ((UnsignedInteger) connections[2].getValue()); - Integer result = ((in0.get() & ~in2.get()) | (~in1.get() & in2.get())); - - return new UnsignedInteger(result); - } - } - - @Override - public int getArity() { - return 3; - } - - @Override - public String getName() { - return "Mux2"; - } - } - - public static class Mux3 extends Function { - @Override - public UnsignedInteger run(Connection... connections) { - if (connections.length < getArity()) { - throw new IllegalArgumentException(getName() + " received " + connections.length + " connections but arity is " + getArity() + "."); - } else { - UnsignedInteger in0 = ((UnsignedInteger) connections[0].getValue()); - UnsignedInteger in1 = ((UnsignedInteger) connections[1].getValue()); - UnsignedInteger in2 = ((UnsignedInteger) connections[2].getValue()); - Integer result = ((~in0.get() & ~in2.get()) | (in1.get() & in2.get())); - - return new UnsignedInteger(result); - } - } - - @Override - public int getArity() { - return 3; - } - - @Override - public String getName() { - return "Mux3"; - } - } - - public static class Mux4 extends Function { - @Override - public UnsignedInteger run(Connection... connections) { - if (connections.length < getArity()) { - throw new IllegalArgumentException(getName() + " received " + connections.length + " connections but arity is " + getArity() + "."); - } else { - UnsignedInteger in0 = ((UnsignedInteger) connections[0].getValue()); - UnsignedInteger in1 = ((UnsignedInteger) connections[1].getValue()); - UnsignedInteger in2 = ((UnsignedInteger) connections[2].getValue()); - Integer result = ((~in0.get() & ~in2.get()) | (~in1.get() & in2.get())); - - return new UnsignedInteger(result); - } - } - - @Override - public int getArity() { - return 3; - } - - @Override - public String getName() { - return "Mux4"; - } - } -} |