I am coding a Hanning filter which is a recursive relation: y[i] = 0.25*(x[i] + 2*x[i-1] + x[i-2])And here is my code were I attempt to unroll 3 times:public void HanningFilter(float[] array) {          int len = array.length;        int i;        for (i = 2; i < len-3; i+=3) {            array[i] = 0.25f*(array[i] + 2*array[i-1] + array[i-2]);            array[i+1] = 0.25f*(array[i+1] + 2*array[i] + array[i-1]);            array[i+2] = 0.25f*(array[i+2] + 2*array[i+1] + array[i]);        }        //Clean-up at the end        for (int j = i; j < len; j++) {            array[i] = 0.25f*(array[i] + 2*array[i-1] + array[i-2]);        }    }Would this help at all with an OoO superscalar processor? Is 3 the right amount of times to unroll? Thanks
Does this loop unrolling make sense?
java;optimization