fabelous-math/src/fabelous_math/cpp/functions/pi.cpp

27 lines
764 B
C++

#include "pi.hpp"
#include <cmath>
#include <iostream> // Include iostream for debugging
long double pi::approximate_pi(long long number) {
long long lange = number - 2;
long double a = 0, b = 0;
// Compute summation for 'a'
for (long long k = 1; k <= lange; ++k) { // Changed to include lange
long double value = std::sqrt(number * number - k * k);
a += value;
}
// Compute summation for 'b'
for (long long j = 0; j <= lange; ++j) { // Changed to include lange
long double value = std::sqrt(number * number - j * j);
b += value;
}
// Normalize the results
b = 4.0 / (number * number) * b;
a = 4.0 / (number * number) * a;
long double result = (a + b) / 2;
return result;
}