aboutsummaryrefslogtreecommitdiffstats
path: root/src/jcgp/backend/function/BitwiseLogic.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/jcgp/backend/function/BitwiseLogic.java')
-rw-r--r--src/jcgp/backend/function/BitwiseLogic.java506
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";
- }
- }
-}