static void copyAToBb(final Object aData, final int aStart, final int[] aStrides,
            final Object bData, final int bStart, final int[] bStrides, final int[] dimensions, final int depth) {
        final int jMax = bStart + dimensions[depth] * bStrides[depth];
        if (depth < dimensions.length - 1) {
            for (int i = aStart, j = bStart; j != jMax; i += aStrides[depth], j += bStrides[depth]) {
                PyMultiarray.copyAToBb(
                        aData,
                        i,
                        aStrides,
                        bData,
                        j,
                        bStrides,
                        dimensions,
                        depth + 1);
            }
        } else {
            for (int i = aStart, j = bStart; j != jMax; i += aStrides[depth], j += bStrides[depth]) {
                Array.setByte(
                        bData,
                        j,
                        ((Number) Array.get(aData, i)).byteValue());
            }
        }
    }