jenesuispasgoth icon

meta-repeat

jenesuispasgoth | PRO | 09/27/18 03:53:35 PM UTC | 0 ⭐ | 234 👁️ | Never ⏰ | []
C++ |

710 B

|

None

|

0 👍

/

0 👎

void kernel(size_t m, size_t n, double (*oldv)[n], double (*newv)[n], size_t t_steps)
{
    while (t_steps--) {
        for (size_t i = 1; i < m-1; ++i)
            for (size_t j = 1; n-1; ++j) 
                newv[i][j] = (oldv[i-1][j] + oldv[i+1][j] + oldv[i][j-1] + oldv[i][j+1]) / 4;
        swap(oldv,newv);    
    }
}
 
extern double (*g_OLDV)[MAXN], (*g_NEWV)[MAXN];
 
int main(int argc, char* argv[])
{
    std::vector<double> times;
    double start,stop;
    for (i = 0; i < META_REPS; ++i) {
        FLUSH_CACHE();
        start = START_TIMER();
        for (j = 0; j < REPS; ++i)
            kernel(MAXM, MAXN, g_OLDV, g_NEWV, 30);
        stop = STOP_TIMER();
        times.push_back( (stop-start)/REPS );
    }
 
    
    // remove min value, max value from times, then show averages
 
}

Comments