Question: Optimize this code using loop unrolling. void naive_pinwheel(pixel *src, pixel *dest) { int qi, qj, i, j; /* Loop over 4 quadrants: */ for (qi

Optimize this code using loop unrolling.

void naive_pinwheel(pixel *src, pixel *dest)

{

int qi, qj, i, j;

/* Loop over 4 quadrants: */

for (qi = 0; qi < 2; qi++)

for (qj = 0; qj < 2; qj++)

/* Loop within quadrant: */

for (i = 0; i < src->dim/2; i++)

for (j = 0; j < src->dim/2; j++) {

int s_idx = RIDX((qj * src->dim/2) + i,

j + (qi * src->dim/2), src->dim);

int d_idx = RIDX((qj * src->dim/2) + src->dim/2 - 1 - j,

i + (qi * src->dim/2), src->dim);

dest[d_idx].red = (src[s_idx].red

+ src[s_idx].green

+ src[s_idx].blue) / 3;

dest[d_idx].green = (src[s_idx].red

+ src[s_idx].green

+ src[s_idx].blue) / 3;

dest[d_idx].blue = (src[s_idx].red

+ src[s_idx].green

+ src[s_idx].blue) / 3;

}

}

Step by Step Solution

There are 3 Steps involved in it

1 Expert Approved Answer
Step: 1 Unlock blur-text-image
Question Has Been Solved by an Expert!

Get step-by-step solutions from verified subject matter experts

Step: 2 Unlock
Step: 3 Unlock

Students Have Also Explored These Related Databases Questions!