@Override
    int inverse2(Block vb, Object i, Object memo, float[] out) {
        LookFloor1 look = (LookFloor1) i;
        InfoFloor1 info = look.vi;
        int n = vb.vd.vi.blocksizes[vb.mode] / 2;

        if (memo != null) {
            /* render the lines */
            int[] fit_value = (int[]) memo;
            int hx = 0;
            int lx = 0;
            int ly = fit_value[0] * info.mult;
            for (int j = 1; j < look.posts; j++) {
                int current = look.forward_index[j];
                int hy = fit_value[current] & 0x7fff;
                if (hy == fit_value[current]) {
                    hy *= info.mult;
                    hx = info.postlist[current];

                    render_line(lx, hx, ly, hy, out);

                    lx = hx;
                    ly = hy;
                }
            }
            for (int j = hx; j < n; j++) {
                out[j] *= out[j - 1]; /* be certain */

            }
            return (1);
        }
        for (int j = 0; j < n; j++) {
            out[j] = 0.f;
        }
        return (0);
    }