比较 boost::multiprecision 中 fixed_int 和 GMP 的算术结果 - 测试程序
boost::multiprecision 是一个 C++ 库,包含多种精度算术类型(比如 fixed_int)、函数及计算常量。与传统的 C++ 整数类型相比,它提供了更高的精度和更强的算术性能。
GMP(GNU Multiple Precision Arithmetic Library)是一款优秀的高精度计算库。由于其高效、稳定和易用等特点,它经常被用作多个领域中精度要求较高的计算,比如密码学、科学计算等。
本文主要介绍一个测试程序,用来比较 boost::multiprecision 中 fixed_int 类型和 GMP 的算术结果的差异。
下面是测试程序的源代码:
#include <iostream>
#include <boost/multiprecision/gmp.hpp>
#include <boost/multiprecision/cpp_int.hpp>
using namespace std;
namespace mp = boost::multiprecision;
void test_fixed_int(int n)
{
mp::cpp_int i = 1;
mp::cpp_int j = 1;
for (int k = 2; k <= n; ++k)
{
mp::cpp_int t = i + j;
i = j;
j = t;
}
mp::cpp_int x = i + j;
m