问题标签 [mpfr]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
428 浏览

c++ - 使用 MPFR 的不同精度的次正规数

我想模拟各种n位二进制浮点格式,每种格式都有指定的e_maxe_min,精度为p位。我希望这些格式能够模拟次正规数,忠实于 IEEE-754 标准。

自然地,我的搜索将我带到了 MPFR 库,它符合 IEEE-754 并且能够支持具有该mpfr_subnormalize()功能的次规范。但是,我在使用mpfr_set_emin()mpfr_set_emax()正确设置启用低于标准的环境时遇到了一些困惑。我将使用 IEEE 双精度作为示例格式,因为这是 MPFR 手册中使用的示例:

http://mpfr.loria.fr/mpfr-current/mpfr.html#index-mpfr_005fsubnormalize

上面的代码来自上面链接中的 MPFR 手册 - 请注意,e_maxe_min都不等于double. 这里,p设置为 53,与预期的double类型一样,但是e_max设置为 1024,而不是正确的值 1023,并且e_min设置为 -1073;远低于 -1022 的正确值。我知道将指数边界设置得太紧会导致 MPFR 中的中间计算出现溢出/下溢,但我发现准确设置e_min对于确保正确的次正规数至关重要;过高或过低会导致低于正常的 MPFR 结果(用 更新mprf_subnormalize())与相应的不同double结果。

我的问题是应该如何决定将哪些值传递给mpfr_set_emax()和(尤其是) ,以保证具有指数边界e_maxe_minmpfr_set_emin()的浮点格式的正确次规范行为?似乎没有关于此事的任何详细文档或讨论。

衷心感谢,

詹姆士。

编辑 30/07/16:这是一个小程序,它演示了e_maxe_min用于单精度数的选择。

0 投票
1 回答
752 浏览

julia - exp function in Julia evaluating to 0

I want to calculate and plot the probability density of a wave function in Julia. I wrote a small snippet of Julia code for evaluating the following function:

P = A^2 e^{-(\sqrt(Cm)/\hbar)x^2}

The Julia (incomplete) code is:

The last line where I evaluate t gives 0.000000000000.... I tried to set the precision of the BigFloat as well. No luck! What am I doing wrong? Help appreciated.

0 投票
2 回答
190 浏览

c++ - 从 MPFR 打印到文件

我想使用 to file 打印计算结果,MPFR但我不知道如何。MPFR用于进行高精度的浮点运算。要打印mpfr_t数字,请使用以下功能:

size_t mpfr_out_str (FILE *stream, int base, size t n, mpfr t op, mp rnd t rnd)

我想我的问题是我不了解FILE*对象以及它们与fstream对象的关系。

如果我my_filempfr_out_str行更改为,stdout那么该数字将按我希望的方式打印到屏幕上,但我不知道如何将其放入文件中。

0 投票
0 回答
265 浏览

gcc - openthread源码编译错误

我正在尝试为 cc2538 平台编译 openthread 源代码。我正在按照此链接上给出的步骤进行操作。

但我无法编译它。在编译检查目标文件的后缀时出现以下错误...

配置:错误:在/home/trupti/open_thread/openthread/build/cortex-m3-arm-none-eabi':配置:错误:无法计算目标文件的后缀:无法编译有关更多详细信息,请参阅config.log'制作: *** [build/cortex-m3-arm-none-eabi/config.status] 错误 1

我正在使用 Ubuntu 12.04 系统进行编译。我系统中的 gcc 版本是 gcc (Ubuntu/Linaro 4.6.3-1ubuntu5) 4.6.3

根据谷歌搜索,我知道我需要安装一些库,如 MPFR、GMP 和 MPC。

谁能帮我安装这些库。

0 投票
1 回答
925 浏览

c++ - MPFR C++ 打印浮点数,如整数

刚刚成功地使用 MPFR C++ 编译了一个程序(第一次),我需要打印出一些相当大的数字,但它们只是作为工程符号而不是整数出现。根据我的阅读,该库没有针对(任意)整数进行优化,因此可以使用浮点数作为整数,因为它们不会有任何小数。我只是 C++ 的初学者,所以我不知道如何使用所有可用的工具,但是有没有办法打印出(大)浮点数,就好像它们是整数一样?例如,代替 (say) 1.12276e+44, print 112275575285571389562324404930670903477890625。如果我尝试std::cout.precision(44),我会得到1.12275575285571389562324404930670903477890625e+44,这看起来并没有更好。

0 投票
1 回答
131 浏览

c++ - C++ MPFRC++ 如何将 memcpy() 与 mpfr::mpreal 一起使用?

我找不到与此问题相关的任何内容。假设我有两个mpfr::mpreal数组,a并且b,在堆中,作为new mpfr::mpreal[n]。由于调用和使用数组的函数,我必须使用 C 样式的数组。我无法修改它,我试过了,但它给出了错误的结果,加上崩溃,这对我的关卡来说是一个相当大和复杂的功能。如果数组可以变大(大小和类型/精度),我想避免复制循环,我想memcpy()改用。我应该使用什么作为第三个参数?

我试过sizeof(mpfr::mpreal)但它总是给32,不管我用什么mpfr_set_default_prec()。在主页中我已经看到我可以使用它mpfr::machine_epsilon()来更好地显示它,但是我该如何使用它memcpy()呢?

0 投票
1 回答
820 浏览

python - Python多精度有理比较:Fraction、mpq和mpfr

我了解浮点计算由于其性质而不准确。我正在尝试找出进行多精度定量比较的最佳库/方法。我在比较分数、mpq 和 mpfr。后两个来自 gmpy2 库。第一个来自分数包。我正在使用python3.3

这是我用来比较的脚本。写的不是很好,很简单。

这是结果:

所以基本上我得到的结果是分数是最准确的,但它非常慢。对于这个问题,我想问,

  1. 您认为我还应该尝试其他任何情况吗?
  2. 任何其他图书馆?
  3. 如果速度很重要,有没有办法使用 gmpy2 库来提高精度?
0 投票
2 回答
1465 浏览

c - 错误:声明为在 c 中返回数组的函数(mpfr 库)

我是mpfr的初学者,我编写了这个程序来进行特定的计算并得到它,但我不知道为什么会出现这个错误,这是我最重要的代码:

怎么了 ??

0 投票
1 回答
223 浏览

c++ - 使用 std::vector 动态分配的 mpfr_t 矩阵

我想要一个作为 mpfr_t 元素矩阵的类。我认为 STL Vectors 将是一个好主意,可以根据需要动态分配任意数量的这些,但我在这里遇到了一些错误。

错误是:

我真的研究过这个,我无法弄清楚。有没有办法制作vector< vector<mpfr_t> >作品?有谁知道发生了什么?

0 投票
3 回答
1830 浏览

javascript - 使用 Emscripten 编译 GMP/MPFR

好吧,这让我发疯了。我已经尝试了至少一个月,互联网上没有任何帮助。

我按照这个的步骤。当我执行这些步骤时,甚至该示例都不起作用,因为当我这样做时,我得到了这个。

当我运行生成的 complete.js 文件时 -