Academic Integrity: tutoring, explanations, and feedback — we don’t complete graded work or submit on a student’s behalf.

Optimize this code using loop unrolling. void naive_pinwheel(pixel *src, pixel *

ID: 3586173 • Letter: O

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 = 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;

          }

  }

Explanation / Answer

#include<iostream>

#include<fstream>

#include<vector>

#include<sstream>

using namespace std;

int main() {

    vector <int> vec;

    ifstream fin("input.txt");

    string line;

    string name;

    int i;

   

    while (getline( fin, line) ) //Read a line

    {

      stringstream ss(line);

    

      ss >> name;

    

      cout << name << " ";

   

      while(ss >> i) //Extract integers from line

        vec.push_back(i);

    

      for (int j = 0; j < vec.size(); j = j + 2) {

        if (j!=0)

           cout << "; ";

        cout << "(" << vec[j] << "," << vec[j+1] << ")";

      }

      cout << endl;

      vec.clear();

    }

fin.close();

}

Hire Me For All Your Tutoring Needs
Integrity-first tutoring: clear explanations, guidance, and feedback.
Drop an Email at
drjack9650@gmail.com
Chat Now And Get Quote