mirror of
https://github.com/boostorg/math.git
synced 2026-01-19 04:22:09 +00:00
AGM
This commit is contained in:
21
example/agm_example.cpp
Normal file
21
example/agm_example.cpp
Normal file
@@ -0,0 +1,21 @@
|
||||
// (C) Copyright Nick Thompson 2020.
|
||||
// Use, modification and distribution are subject to the
|
||||
// Boost Software License, Version 1.0. (See accompanying file
|
||||
// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
|
||||
#include <iostream>
|
||||
#include <boost/math/tools/agm.hpp>
|
||||
#include <boost/math/constants/constants.hpp>
|
||||
#include <boost/multiprecision/float128.hpp>
|
||||
|
||||
// This example computes the lemniscate constant to high precision using the agm:
|
||||
using boost::math::tools::agm;
|
||||
using boost::math::constants::pi;
|
||||
using boost::multiprecision::float128;
|
||||
|
||||
int main() {
|
||||
using Real = float128;
|
||||
Real G = agm(sqrt(Real(2)), Real(1));
|
||||
std::cout << std::setprecision(std::numeric_limits<Real>::max_digits10);
|
||||
std::cout << " Gauss's lemniscate constant = " << pi<Real>()/G << "\n";
|
||||
std::cout << "Expected lemniscate constant = " << "2.62205755429211981046483958989111941368275495143162316281682170380079058707041425023029553296142909344613\n";
|
||||
}
|
||||
Reference in New Issue
Block a user