From 15afe5e5baea2ea36c0415d9feb223ac22ec7ad9 Mon Sep 17 00:00:00 2001 From: Isabell Pflug Date: Sun, 20 Jul 2025 19:50:33 +0200 Subject: [PATCH] :sparkles: Finished assignment #2. --- answers/02/pi_numerical_integration.cpp | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) create mode 100644 answers/02/pi_numerical_integration.cpp diff --git a/answers/02/pi_numerical_integration.cpp b/answers/02/pi_numerical_integration.cpp new file mode 100644 index 0000000..5468d44 --- /dev/null +++ b/answers/02/pi_numerical_integration.cpp @@ -0,0 +1,23 @@ +#include +#include +#include + +using namespace std; + +int main() { + int num_steps = 100000000; // number of rectangles + double width = 1.0 / double(num_steps); // width of a rectangle + double sum = 0.0; // for summing up all heights of rectangles + + double start_time = omp_get_wtime(); // wall clock time in seconds + #pragma omp parallel for reduction(+:sum) + for (int i = 0; i < num_steps; i++) { + double x = (i + 0.5) * width; // midpoint + sum = sum + (1.0 / (1.0 + x * x)); // add new height of a rectangle + } + double pi = sum * 4 * width; // compute pi + double run_time = omp_get_wtime() - start_time; + + cout << "pi with " << num_steps << " steps is " << setprecision(17) + << pi << " in " << setprecision(6) << run_time << " seconds\n"; +}