test_class.file: lib/common/src/test/java/dk/alexandra/fresco/lib/common/collections/permute/TestWaksmanUtils.java
test_class.identifier: TestWaksmanUtils
test_case.body: @Test
    public void testIs2Pow(){
      WaksmanUtils util = new WaksmanUtils();
      assertFalse(util.isPow2(-2));
      assertFalse(util.isPow2(14));
      assertFalse(util.isPow2(5));
      assertTrue(util.isPow2(4));
      assertTrue(util.isPow2(8));
      assertFalse(util.isPow2(-8));
    }
test_case.class_method_signature: TestWaksmanUtils.testIs2Pow()
test_case.full_signature: @Test public void testIs2Pow()
test_case.identifier: testIs2Pow
test_case.invocations: assertFalse isPow2 assertFalse isPow2 assertFalse isPow2 assertTrue isPow2 assertTrue isPow2 assertFalse isPow2
test_case.modifiers: @Test public
test_case.parameters: ()
test_case.return: void
test_case.signature: void testIs2Pow()
focal_class.file: lib/common/src/main/java/dk/alexandra/fresco/lib/common/collections/permute/WaksmanUtils.java
focal_class.identifier: WaksmanUtils
focal_class.class_method_signature: WaksmanUtils.log2(int n)
focal_class.full_signature: private int log2(int n)
focal_class.identifier: log2
focal_class.modifiers: private
focal_class.parameters: (int n)
focal_class.return: int
focal_class.signature: int log2(int n)
focal_class.class_method_signature: WaksmanUtils.nextUnsetSwapperIdx(int[] swappers)
focal_class.full_signature: private int nextUnsetSwapperIdx(int[] swappers)
focal_class.identifier: nextUnsetSwapperIdx
focal_class.modifiers: private
focal_class.parameters: (int[] swappers)
focal_class.return: int
focal_class.signature: int nextUnsetSwapperIdx(int[] swappers)
focal_class.class_method_signature: WaksmanUtils.swapperIdxOf(int elIdx)
focal_class.full_signature: private int swapperIdxOf(int elIdx)
focal_class.identifier: swapperIdxOf
focal_class.modifiers: private
focal_class.parameters: (int elIdx)
focal_class.return: int
focal_class.signature: int swapperIdxOf(int elIdx)
focal_class.class_method_signature: WaksmanUtils.topElIndexOf(int swIdx)
focal_class.full_signature: private int topElIndexOf(int swIdx)
focal_class.identifier: topElIndexOf
focal_class.modifiers: private
focal_class.parameters: (int swIdx)
focal_class.return: int
focal_class.signature: int topElIndexOf(int swIdx)
focal_class.class_method_signature: WaksmanUtils.even(int n)
focal_class.full_signature: private boolean even(int n)
focal_class.identifier: even
focal_class.modifiers: private
focal_class.parameters: (int n)
focal_class.return: boolean
focal_class.signature: boolean even(int n)
focal_class.class_method_signature: WaksmanUtils.isTopEl(int elIdx)
focal_class.full_signature: private boolean isTopEl(int elIdx)
focal_class.identifier: isTopEl
focal_class.modifiers: private
focal_class.parameters: (int elIdx)
focal_class.return: boolean
focal_class.signature: boolean isTopEl(int elIdx)
focal_class.class_method_signature: WaksmanUtils.neighElIdxOf(int elIdx)
focal_class.full_signature: private int neighElIdxOf(int elIdx)
focal_class.identifier: neighElIdxOf
focal_class.modifiers: private
focal_class.parameters: (int elIdx)
focal_class.return: int
focal_class.signature: int neighElIdxOf(int elIdx)
focal_class.class_method_signature: WaksmanUtils.hasNextUnsetSwapper(int[] rowO)
focal_class.full_signature: private boolean hasNextUnsetSwapper(int[] rowO)
focal_class.identifier: hasNextUnsetSwapper
focal_class.modifiers: private
focal_class.parameters: (int[] rowO)
focal_class.return: boolean
focal_class.signature: boolean hasNextUnsetSwapper(int[] rowO)
focal_class.class_method_signature: WaksmanUtils.routeFromOutputToInput(int rowOElIdx, int[] invPerm, int[] topPerm, int[] rowI)
focal_class.full_signature: private int routeFromOutputToInput(int rowOElIdx, int[] invPerm, int[] topPerm, int[] rowI)
focal_class.identifier: routeFromOutputToInput
focal_class.modifiers: private
focal_class.parameters: (int rowOElIdx, int[] invPerm, int[] topPerm, int[] rowI)
focal_class.return: int
focal_class.signature: int routeFromOutputToInput(int rowOElIdx, int[] invPerm, int[] topPerm, int[] rowI)
focal_class.class_method_signature: WaksmanUtils.routeFromInputToOutput(int rowIElIdx, int[] perm, int[] bottomPerm, int[] rowO)
focal_class.full_signature: private int routeFromInputToOutput(int rowIElIdx, int[] perm, int[] bottomPerm, int[] rowO)
focal_class.identifier: routeFromInputToOutput
focal_class.modifiers: private
focal_class.parameters: (int rowIElIdx, int[] perm, int[] bottomPerm, int[] rowO)
focal_class.return: int
focal_class.signature: int routeFromInputToOutput(int rowIElIdx, int[] perm, int[] bottomPerm, int[] rowO)
focal_class.class_method_signature: WaksmanUtils.route(int fromElIdx, int[] perm, int[] subPerm, int[] swappers,
        boolean outputToInput)
focal_class.full_signature: private int route(int fromElIdx, int[] perm, int[] subPerm, int[] swappers,
        boolean outputToInput)
focal_class.identifier: route
focal_class.modifiers: private
focal_class.parameters: (int fromElIdx, int[] perm, int[] subPerm, int[] swappers,
        boolean outputToInput)
focal_class.return: int
focal_class.signature: int route(int fromElIdx, int[] perm, int[] subPerm, int[] swappers,
        boolean outputToInput)
focal_class.class_method_signature: WaksmanUtils.setControlBits(int[] perm, int[][] controlBits, int rowIdx, int colIdx)
focal_class.full_signature: private void setControlBits(int[] perm, int[][] controlBits, int rowIdx, int colIdx)
focal_class.identifier: setControlBits
focal_class.modifiers: private
focal_class.parameters: (int[] perm, int[][] controlBits, int rowIdx, int colIdx)
focal_class.return: void
focal_class.signature: void setControlBits(int[] perm, int[][] controlBits, int rowIdx, int colIdx)
focal_class.class_method_signature: WaksmanUtils.getNumRowsRequired(int n)
focal_class.full_signature: public int getNumRowsRequired(int n)
focal_class.identifier: getNumRowsRequired
focal_class.modifiers: public
focal_class.parameters: (int n)
focal_class.return: int
focal_class.signature: int getNumRowsRequired(int n)
focal_class.class_method_signature: WaksmanUtils.getNumColsRequired(int n)
focal_class.full_signature: public int getNumColsRequired(int n)
focal_class.identifier: getNumColsRequired
focal_class.modifiers: public
focal_class.parameters: (int n)
focal_class.return: int
focal_class.signature: int getNumColsRequired(int n)
focal_class.class_method_signature: WaksmanUtils.isPow2(int n)
focal_class.full_signature: public boolean isPow2(int n)
focal_class.identifier: isPow2
focal_class.modifiers: public
focal_class.parameters: (int n)
focal_class.return: boolean
focal_class.signature: boolean isPow2(int n)
focal_class.class_method_signature: WaksmanUtils.invert(int[] p)
focal_class.full_signature: public int[] invert(int[] p)
focal_class.identifier: invert
focal_class.modifiers: public
focal_class.parameters: (int[] p)
focal_class.return: int[]
focal_class.signature: int[] invert(int[] p)
focal_class.class_method_signature: WaksmanUtils.setControlBits(int[] perm)
focal_class.full_signature: public Matrix<BigInteger> setControlBits(int[] perm)
focal_class.identifier: setControlBits
focal_class.modifiers: public
focal_class.parameters: (int[] perm)
focal_class.return: Matrix<BigInteger>
focal_class.signature: Matrix<BigInteger> setControlBits(int[] perm)
focal_method.body: public boolean isPow2(int n) {
      return n >= 0 && ((n & (n - 1)) == 0);
    }
focal_method.class_method_signature: WaksmanUtils.isPow2(int n)
focal_method.full_signature: public boolean isPow2(int n)
focal_method.identifier: isPow2
focal_method.modifiers: public
focal_method.parameters: (int n)
focal_method.return: boolean
focal_method.signature: boolean isPow2(int n)