Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- // https://drive.google.com/drive/folders/1GK3t7PBsRFQp01ApEmk1wb6Scrw_CFA4?usp=sharing
- #include <iostream>
- #include <vector>
- #include <ctime>
- #include <cmath>
- #include <ppl.h>
- using namespace std;
- #define N 200
- #define EPS 1e-9
- double fun(double x)
- {
- double ans = 0;
- for (int k = 1; k <= max(20, int(20 * fabs(x))); ++k)
- for (int j = 1; j <= max(20, int(20 * fabs(x))); ++j)
- {
- double x_2 = x * x;
- ans += x_2 * (k + j) / (x_2 + k * k * k + j * j * j) * cos(k * x) * sin(j * x);
- }
- return ans;
- }
- double res1[N + 7], res2[N + 7];
- int main()
- {
- setlocale(LC_ALL, "Russian");
- auto t_start = clock();
- for (int i = 1; i <= N; ++i)
- res1[i] = fun(100 * cos(i));
- auto t_end = clock();
- double time1 = 1.0 * (t_end - t_start) / CLOCKS_PER_SEC;
- cout << "Последовательная реализация: " << time1 << "\n";
- t_start = clock();
- concurrency::parallel_for(1, N + 1, [](size_t i) {res2[i] = fun(100 * cos(i)); });
- t_end = clock();
- double time2 = 1.0 * (t_end - t_start) / CLOCKS_PER_SEC;
- cout << "Параллельная реализация: " << time2 << "\n";
- cout << "Разница во времени: " << time1 / time2 << "\n";
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement