gpt4 book ai didi

c++ - 将 boost multiprecision 与三角函数结合使用

转载 作者:搜寻专家 更新时间:2023-10-31 02:22:17 26 4
gpt4 key购买 nike

考虑以下使用 boost 创建多精度 float “a”的代码。

如何使用boost库调用三角函数?比如我希望计算sin(a)

#include <iostream>
#include "boost/multiprecision/cpp_bin_float.hpp"

using namespace std;
using namespace boost::multiprecision;

typedef number<backends::cpp_bin_float<24, backends::digit_base_2, void, boost::int16_t, -126, 127>, et_off> float32;

int main (void) {
float32 a("0.5");

return 0;
}

最佳答案

图书馆似乎有限制。当精度降得太低时,sin 实现将不再编译。

一些中间计算正在以 double 精度进行。对结果类型的赋值将是有损的,因此无法编译。

您选择的类型actually correspondscpp_bin_float_single。那不编译。

只要选择 cpp_bin_float_double(精度为 53 位二进制数字)或更高,就可以了。


我想这个限制在某些方面可以被视为一个错误。您可以将其报告给库开发人员,他们将能够判断相关代码是否可以在那里使用单精度 float 而不影响 sin 近似的收敛。

关于c++ - 将 boost multiprecision 与三角函数结合使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30470032/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com