rendered paste body/***************
* ROTATE KERNEL
***************/
/******************************************************
* Your different versions of the rotate kernel go here
******************************************************/
/*
* naive_rotate - The naive baseline version of rotate
*/
char naive_rotate_descr[] = "naive_rotate: Naive baseline implementation";
void naive_rotate(int dim, pixel *src, pixel *dst)
{
int i, j;
for (i = 0; i < dim; i++)
for (j = 0; j < dim; j++)
dst[RIDX(dim-1-j, i, dim)] = src[RIDX(i, j, dim)];
}
/*
* rotate - Your current working version of rotate
* IMPORTANT: This is the version you will be graded on
*/
char rotate_descr[] = "rotate: Current working version";
void rotate(int dim, pixel *src, pixel *dst)
{
int i, j;
for(i = 0; i < dim; i+=32) {
for(j = 0; j < dim; j+=2) {
dst[RIDX(dim-1-j, i, dim)] = src[RIDX(i, j, dim)];
dst[RIDX(dim-1-j, i+1, dim)] = src[RIDX(i+1, j, dim)];
dst[RIDX(dim-1-j, i+2, dim)] = src[RIDX(i+2, j, dim)];
dst[RIDX(dim-1-j, i+3, dim)] = src[RIDX(i+3, j, dim)];
dst[RIDX(dim-1-j, i+4, dim)] = src[RIDX(i+4, j, dim)];
dst[RIDX(dim-1-j, i+5, dim)] = src[RIDX(i+5, j, dim)];
dst[RIDX(dim-1-j, i+6, dim)] = src[RIDX(i+6, j, dim)];
dst[RIDX(dim-1-j, i+7, dim)] = src[RIDX(i+7, j, dim)];
dst[RIDX(dim-1-j, i+8, dim)] = src[RIDX(i+8, j, dim)];
dst[RIDX(dim-1-j, i+9, dim)] = src[RIDX(i+9, j, dim)];
dst[RIDX(dim-1-j, i+10, dim)] = src[RIDX(i+10, j, dim)];
dst[RIDX(dim-1-j, i+11, dim)] = src[RIDX(i+11, j, dim)];
dst[RIDX(dim-1-j, i+12, dim)] = src[RIDX(i+12, j, dim)];
dst[RIDX(dim-1-j, i+13, dim)] = src[RIDX(i+13, j, dim)];
dst[RIDX(dim-1-j, i+14, dim)] = src[RIDX(i+14, j, dim)];
dst[RIDX(dim-1-j, i+15, dim)] = src[RIDX(i+15, j, dim)];
dst[RIDX(dim-1-j, i+16, dim)] = src[RIDX(i+16, j, dim)];
dst[RIDX(dim-1-j, i+17, dim)] = src[RIDX(i+17, j, dim)];
dst[RIDX(dim-1-j, i+18, dim)] = src[RIDX(i+18, j, dim)];
dst[RIDX(dim-1-j, i+19, dim)] = src[RIDX(i+19, j, dim)];
dst[RIDX(dim-1-j, i+20, dim)] = src[RIDX(i+20, j, dim)];
dst[RIDX(dim-1-j, i+21, dim)] = src[RIDX(i+21, j, dim)];
dst[RIDX(dim-1-j, i+22, dim)] = src[RIDX(i+22, j, dim)];
dst[RIDX(dim-1-j, i+23, dim)] = src[RIDX(i+23, j, dim)];
dst[RIDX(dim-1-j, i+24, dim)] = src[RIDX(i+24, j, dim)];
dst[RIDX(dim-1-j, i+25, dim)] = src[RIDX(i+25, j, dim)];
dst[RIDX(dim-1-j, i+26, dim)] = src[RIDX(i+26, j, dim)];
dst[RIDX(dim-1-j, i+27, dim)] = src[RIDX(i+27, j, dim)];
dst[RIDX(dim-1-j, i+28, dim)] = src[RIDX(i+28, j, dim)];
dst[RIDX(dim-1-j, i+29, dim)] = src[RIDX(i+29, j, dim)];
dst[RIDX(dim-1-j, i+30, dim)] = src[RIDX(i+30, j, dim)];
dst[RIDX(dim-1-j, i+31, dim)] = src[RIDX(i+31, j, dim)];
dst[RIDX(dim-1-j+1, i, dim)] = src[RIDX(i, j+1, dim)];
dst[RIDX(dim-1-j+1, i+1, dim)] = src[RIDX(i+1, j+1, dim)];
dst[RIDX(dim-1-j+1, i+2, dim)] = src[RIDX(i+2, j+1, dim)];
dst[RIDX(dim-1-j+1, i+3, dim)] = src[RIDX(i+3, j+1, dim)];
dst[RIDX(dim-1-j+1, i+4, dim)] = src[RIDX(i+4, j+1, dim)];
dst[RIDX(dim-1-j+1, i+5, dim)] = src[RIDX(i+5, j+1, dim)];
dst[RIDX(dim-1-j+1, i+6, dim)] = src[RIDX(i+6, j+1, dim)];
dst[RIDX(dim-1-j+1, i+7, dim)] = src[RIDX(i+7, j+1, dim)];
dst[RIDX(dim-1-j+1, i+8, dim)] = src[RIDX(i+8, j+1, dim)];
dst[RIDX(dim-1-j+1, i+9, dim)] = src[RIDX(i+9, j+1, dim)];
dst[RIDX(dim-1-j+1, i+10, dim)] = src[RIDX(i+10, j+1, dim)];
dst[RIDX(dim-1-j+1, i+11, dim)] = src[RIDX(i+11, j+1, dim)];
dst[RIDX(dim-1-j+1, i+12, dim)] = src[RIDX(i+12, j+1, dim)];
dst[RIDX(dim-1-j+1, i+13, dim)] = src[RIDX(i+13, j+1, dim)];
dst[RIDX(dim-1-j+1, i+14, dim)] = src[RIDX(i+14, j+1, dim)];
dst[RIDX(dim-1-j+1, i+15, dim)] = src[RIDX(i+15, j+1, dim)];
dst[RIDX(dim-1-j+1, i+16, dim)] = src[RIDX(i+16, j+1, dim)];
dst[RIDX(dim-1-j+1, i+17, dim)] = src[RIDX(i+17, j+1, dim)];
dst[RIDX(dim-1-j+1, i+18, dim)] = src[RIDX(i+18, j+1, dim)];
dst[RIDX(dim-1-j+1, i+19, dim)] = src[RIDX(i+19, j+1, dim)];
dst[RIDX(dim-1-j+1, i+20, dim)] = src[RIDX(i+20, j+1, dim)];
dst[RIDX(dim-1-j+1, i+21, dim)] = src[RIDX(i+21, j+1, dim)];
dst[RIDX(dim-1-j+1, i+22, dim)] = src[RIDX(i+22, j+1, dim)];
dst[RIDX(dim-1-j+1, i+23, dim)] = src[RIDX(i+23, j+1, dim)];
dst[RIDX(dim-1-j+1, i+24, dim)] = src[RIDX(i+24, j+1, dim)];
dst[RIDX(dim-1-j+1, i+25, dim)] = src[RIDX(i+25, j+1, dim)];
dst[RIDX(dim-1-j+1, i+26, dim)] = src[RIDX(i+26, j+1, dim)];
dst[RIDX(dim-1-j+1, i+27, dim)] = src[RIDX(i+27, j+1, dim)];
dst[RIDX(dim-1-j+1, i+28, dim)] = src[RIDX(i+28, j+1, dim)];
dst[RIDX(dim-1-j+1, i+29, dim)] = src[RIDX(i+29, j+1, dim)];
dst[RIDX(dim-1-j+1, i+30, dim)] = src[RIDX(i+30, j+1, dim)];
dst[RIDX(dim-1-j+1, i+31, dim)] = src[RIDX(i+31, j+1, dim)];
}
}
}