Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/162.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何计算强积金课程的ε 我尝试用GMP(GNU多精度算术库)改进C++程序。_C++_C++11_Gmp - Fatal编程技术网

如何计算强积金课程的ε 我尝试用GMP(GNU多精度算术库)改进C++程序。

如何计算强积金课程的ε 我尝试用GMP(GNU多精度算术库)改进C++程序。,c++,c++11,gmp,C++,C++11,Gmp,有一个计数器变量,该变量将根据double类型的计算结果定期增加。 添加发生在ISR(中断服务例程)内部,因此它应该是快速的 到目前为止,计数器变量的类型是double,这导致了一个问题。 一些设备(运行多年)达到了每一次添加都被吸收的程度,因此不再发生任何事情。 其他设备已经开始放弃较小的添加 因为现在是时候通过使用mpf_类而不是double来改进它了。 但是为了正确设置mpf_类的大小,我需要知道ε(ε) 我的问题是:如何计算mpf_类对象的ε 这个计算的一个例子(c++)将非常好。GMP

有一个计数器变量,该变量将根据double类型的计算结果定期增加。 添加发生在ISR(中断服务例程)内部,因此它应该是快速的

到目前为止,计数器变量的类型是double,这导致了一个问题。 一些设备(运行多年)达到了每一次添加都被吸收的程度,因此不再发生任何事情。 其他设备已经开始放弃较小的添加

因为现在是时候通过使用mpf_类而不是double来改进它了。 但是为了正确设置mpf_类的大小,我需要知道ε(ε)

我的问题是:如何计算mpf_类对象的ε


这个计算的一个例子(c++)将非常好。

GMP中的mpf类型不提供精确的基数-2表示。请求的精度按基础数组元素中的位数向上舍入,然后至少添加一个附加元素。如果在典型的32位系统上要求精度为53,则实际值将在65到96位之间计算。(从技术上讲,mpf类型在本例中使用基数2^32算法)


我建议改为查看MPFR(带舍入的多精度浮点)库。它使用GMP库进行底层计算,但提供更可预测的行为。GMP文档中的注释建议使用MPFR。

好的,我不需要知道我的系统是否使用了更多内存。我对可能的最大ε感兴趣。我只需要检查一下它是否符合要求。除了安装了mpfr之外,如果有必要,我还可以使用它。为mpfr提供解决方案就可以了。