# 2016q3 Homework1 (compute-pi) contributed by <`Quexint`> ## 開發記錄 ### `v0` 原始版本 ### `v1` 支援 `make plot` ### `v2` 加入 Error Rate 及 重推公式 - 參考 - https://hackpad.com/Hw1-Extcompute_pi-geXUeYjdv1I - 改寫 `baseline`, `OMP2`, `OMP4` 成 `baseline_plus`, `OMP2P`, `OMP4P` hh ``` double compute_pi_baseline(size_t N) { double pi = 0.0; double dt = 1.0 / N; // dt = (b-a)/N, b = 1, a = 0 for (size_t i = 0; i < N; i++) { double x = (double) i / N; // x = ti = a+(b-a)*i/N = i/N pi += dt / (1.0 + x * x); // integrate 1/(1+x^2), i = 0....N } return pi * 4.0; } double compute_pi_baseline_plus(size_t N) { double pi = 0.0; for (size_t i = 0; i < N; i++) { double x = N * N + i * i; pi += N / (x); } return pi * 4.0; } ``` - 時間下降一半以上,精準度不變 ![](https://d17oy1vhnax1f7.cloudfront.net/items/3H0h0a2A2M202u3r2p37/runtime_3jkrlje.png?v=f92ec078) ![](https://d17oy1vhnax1f7.cloudfront.net/items/0H2Q0n2B0B36391g2v3z/errorrate_fdsa.png?v=c2394edd)