private final static void maxObject(int sa, final PyMultiarray a, int sb, final PyMultiarray b, int sr, final PyMultiarray r, final int d) {
        final int dsa = a.strides[d], dsb = b.strides[d], dsr = r.strides[d], maxSr = sr
                + r.dimensions[d] * r.strides[d];
        if (d == r.dimensions.length - 1) {
            final PyObject[] aData = (PyObject[]) a.data, bData = (PyObject[]) b.data;
            final PyObject[] rData = (PyObject[]) r.data;
            for (; sr != maxSr; sa += dsa, sb += dsb, sr += dsr)
            {
                rData[sr] = PyMultiarray.myMax(aData[sa], bData[sb]); // (PyObject)(__builtin__.max(new
                                                                      // PyObject
                                                                      // []
                                                                      // {aData[sa],
                                                                      // bData[sb]}));
            }
        } else {
            for (; sr != maxSr; sa += dsa, sb += dsb, sr += dsr) {
                PyMultiarray.maxObject(sa, a, sb, b, sr, r, d + 1);
            }
        }
    }