#include #include int main() { using namespace boost::multiprecision; typedef number > number_t; number_t earth_age = 6000; // years number_t T = earth_age * 31557600; // seconds per Julian year number_t g = 9.81; // m/s^2 number_t c = 299792458; // m/s number_t phi = (g * T) / c; number_t beta = tanh(phi); number_t inv_gamma = sqrt(1.0 - (beta*beta)); std::cout << std::setprecision(std::numeric_limits::max_digits10); std::cout << "beta = " << beta << std::endl << std::endl; std::cout << "inv_gamma = " << inv_gamma << std::endl << std::endl; number_t earth_radius = 6371 * 1000; // meters number_t flat_earth = 2 * earth_radius * inv_gamma; std::cout << std::setprecision(10); std::cout << "flat earth thickness = " << flat_earth << " meters" << std::endl << std::endl; return 0; }