// // Created by GentleCold on 2022/11/7. // #ifndef CSAPPLEARNING_MOUNTAIN_H #define CSAPPLEARNING_MOUNTAIN_H #include #define MAXELEMS 10000 long data[MAXELEMS]; int read(int elems, int stride) { long i, sx2 = stride * 2, sx3 = stride * 3, sx4 = stride * 4; long acc0 = 0, acc1 = 0, acc2 = 0, acc3 = 0; long length = elems; long limit = length - sx4; for (i = 0; i < limit; i += sx4) { acc0 += data[i]; acc1 += data[i + stride]; acc2 += data[i + sx2]; acc3 += data[i + sx3]; } for (; i < length; i += stride) { acc0 += data[i]; } return ((acc0 + acc1) + (acc2 + acc3)); } double run(int size, int stride, double Mhz) { double cycles; int elems = size / sizeof(double); read(elems, stride); cycles = fcyc2(); } int mountain() { } #endif //CSAPPLEARNING_MOUNTAIN_H