X-Git-Url: https://mograsim.net/gitweb/?a=blobdiff_plain;f=era.mi%2Fsrc%2Fera%2Fmi%2Flogic%2FUtil.java;h=88b2393f9b95a092920653d7bdea8ebcfa0270fb;hb=7d3d8dd3ff0e8362195ed5bbbc7ec4bc9a9b2475;hp=5a6e4f5de1f48eafcc24e866a6635c0e829dcb06;hpb=72b00816f86e5d34d871c87fea76a94ffca25246;p=Mograsim.git diff --git a/era.mi/src/era/mi/logic/Util.java b/era.mi/src/era/mi/logic/Util.java index 5a6e4f5d..88b2393f 100644 --- a/era.mi/src/era/mi/logic/Util.java +++ b/era.mi/src/era/mi/logic/Util.java @@ -2,10 +2,12 @@ package era.mi.logic; import java.util.Arrays; -public final class Util { +public final class Util +{ @SuppressWarnings("unchecked") - public static T[] concat(T[]... arrays) { + public static T[] concat(T[]... arrays) + { if (arrays.length == 0) throw new IllegalArgumentException("Cannot concatenate 0 arrays."); @@ -15,7 +17,8 @@ public final class Util { T[] newArray = Arrays.copyOf(arrays[0], length); int appendIndex = arrays[0].length; - for (int i = 1; i < arrays.length; i++) { + for (int i = 1; i < arrays.length; i++) + { System.arraycopy(arrays[i], 0, newArray, appendIndex, arrays[i].length); appendIndex += arrays[i].length; } @@ -45,31 +48,38 @@ public final class Util { // return (T[][]) newArray; // } - public static Bit[] and(Bit[] a, Bit[] b) { + public static Bit[] and(Bit[] a, Bit[] b) + { return binBitOp(a, b, (bA, bB) -> Bit.and(bA, bB)); } - public static Bit[] or(Bit[] a, Bit[] b) { + public static Bit[] or(Bit[] a, Bit[] b) + { return binBitOp(a, b, (bA, bB) -> Bit.or(bA, bB)); } - public static Bit[] xor(Bit[] a, Bit[] b) { + public static Bit[] xor(Bit[] a, Bit[] b) + { return binBitOp(a, b, (bA, bB) -> Bit.xor(bA, bB)); } - private static Bit[] binBitOp(Bit[] a, Bit[] b, BitOp op) { + private static Bit[] binBitOp(Bit[] a, Bit[] b, BitOp op) + { if (a.length != b.length) throw new IllegalArgumentException("Bit Arrays were not of equal length."); Bit[] out = new Bit[a.length]; - for (int i = 0; i < a.length; i++) { + for (int i = 0; i < a.length; i++) + { out[i] = op.execute(a[i], b[i]); } return out; } - public static Bit[] not(Bit[] a) { + public static Bit[] not(Bit[] a) + { Bit[] out = new Bit[a.length]; - for (int i = 0; i < a.length; i++) { + for (int i = 0; i < a.length; i++) + { out[i] = a[i].not(); } return out; @@ -80,16 +90,19 @@ public final class Util { * * @author Christian Femers */ - public static Bit[] combineInto(Bit[] dest, Bit[] addition) { + public static Bit[] combineInto(Bit[] dest, Bit[] addition) + { if (dest.length != addition.length) throw new IllegalArgumentException("Bit Arrays were not of equal length."); - for (int i = 0; i < addition.length; i++) { + for (int i = 0; i < addition.length; i++) + { dest[i] = dest[i].combineWith(addition[i]); } return dest; } - interface BitOp { + interface BitOp + { Bit execute(Bit a, Bit b); } }