---- OLD ----- int i=0; int j=0; for (i = 0; i < dim; i++){ for (j = 0; j < dim; j++){ dst[RIDX(dim-1-j, i, dim)] = src[RIDX(i,j,dim)]; } // end inner loop } // end outer loop } ----- NEW ----- int i=0; int j=0; int calc=0 for (i = 0; i < dim; i++){ calc=i*dim; for (j = 0; j < dim; j++){ calc=calc+j; dst[RIDX(dim-1-j, i, dim)] = src[calc]; } // end inner loop } // end outer loop } RIDX is defined as ----- i*n + j when called as RIDX(i,j,n)