mirror of
https://github.com/boostorg/math.git
synced 2026-01-19 04:22:09 +00:00
Remove big_seventh.cpp as example is unused and anyway belongs in multiprecision.
This commit is contained in:
@@ -1,98 +0,0 @@
|
||||
// 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)
|
||||
|
||||
// Copyright Paul A. Bristow 2012.
|
||||
// Copyright Christopher Kormanyos 2012.
|
||||
|
||||
// This file is written to be included from a Quickbook .qbk document.
|
||||
// It can be compiled by the C++ compiler, and run. Any output can
|
||||
// also be added here as comment or included or pasted in elsewhere.
|
||||
// Caution: this file contains Quickbook markup as well as code
|
||||
// and comments: don't change any of the special comment markups!
|
||||
|
||||
#ifdef _MSC_VER
|
||||
# pragma warning (disable : 4512) // assignment operator could not be generated.
|
||||
# pragma warning (disable : 4996)
|
||||
#endif
|
||||
|
||||
//[big_seventh_example_1
|
||||
|
||||
/*`[h5 Using Boost.Multiprecision `cpp_float` for numerical calculations with high precision.]
|
||||
|
||||
The Boost.Multiprecision library can be used for computations requiring precision
|
||||
exceeding that of standard built-in types such as float, double
|
||||
and long double. For extended-precision calculations, Boost.Multiprecision
|
||||
supplies a template data type called cpp_dec_float. The number of decimal
|
||||
digits of precision is fixed at compile-time via template parameter.
|
||||
|
||||
To use these floating-point types and constants, we need some includes:
|
||||
|
||||
*/
|
||||
|
||||
#include <boost/math/constants/constants.hpp>
|
||||
|
||||
#include <boost/multiprecision/cpp_dec_float.hpp>
|
||||
// using boost::multiprecision::cpp_dec_float
|
||||
|
||||
#include <iostream>
|
||||
#include <limits>
|
||||
|
||||
/*` So now we can demonstrate with some trivial calculations:
|
||||
*/
|
||||
|
||||
//] //[big_seventh_example_1]
|
||||
|
||||
int main()
|
||||
{
|
||||
|
||||
//[big_seventh_example_2
|
||||
/*`Using `typedef cpp_dec_float_50` hides the complexity of multiprecision,
|
||||
allows us to define variables with 50 decimal digit precision just like built-in `double`.
|
||||
*/
|
||||
using boost::multiprecision::cpp_dec_float_50;
|
||||
|
||||
cpp_dec_float_50 seventh = cpp_dec_float_50(1) / 7; // 1 / 7
|
||||
|
||||
/*`By default, output would only show the standard 6 decimal digits,
|
||||
so set precision to show all 50 significant digits, including any trailing zeros.
|
||||
*/
|
||||
std::cout.precision(std::numeric_limits<cpp_dec_float_50>::digits10);
|
||||
std::cout << std::showpoint << std::endl; // Append any trailing zeros.
|
||||
std::cout << seventh << std::endl;
|
||||
/*`which outputs:
|
||||
|
||||
0.14285714285714285714285714285714285714285714285714
|
||||
|
||||
We can also use Boost.Math __constants like [pi],
|
||||
guaranteed to be initialized with the very last bit of precision for the floating-point type.
|
||||
*/
|
||||
|
||||
std::cout << "pi = " << boost::math::constants::pi<cpp_dec_float_50>() << std::endl;
|
||||
cpp_dec_float_50 circumference = boost::math::constants::pi<cpp_dec_float_50>() * 2 * seventh;
|
||||
std::cout << "c = "<< circumference << std::endl;
|
||||
|
||||
/*`which outputs
|
||||
|
||||
pi = 3.1415926535897932384626433832795028841971693993751
|
||||
|
||||
c = 0.89759790102565521098932668093700082405633411410717
|
||||
*/
|
||||
//] [/big_seventh_example_2]
|
||||
|
||||
return 0;
|
||||
} // int main()
|
||||
|
||||
|
||||
/*
|
||||
//[big_seventh_example_output
|
||||
|
||||
0.14285714285714285714285714285714285714285714285714
|
||||
pi = 3.1415926535897932384626433832795028841971693993751
|
||||
c = 0.89759790102565521098932668093700082405633411410717
|
||||
|
||||
//] //[big_seventh_example_output]
|
||||
|
||||
*/
|
||||
|
||||
Reference in New Issue
Block a user