问题标签 [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.
c++ - 使用 MPFR 的不同精度的次正规数
我想模拟各种n位二进制浮点格式,每种格式都有指定的e_max和e_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_max和e_min都不等于double
. 这里,p设置为 53,与预期的double
类型一样,但是e_max设置为 1024,而不是正确的值 1023,并且e_min设置为 -1073;远低于 -1022 的正确值。我知道将指数边界设置得太紧会导致 MPFR 中的中间计算出现溢出/下溢,但我发现准确设置e_min对于确保正确的次正规数至关重要;过高或过低会导致低于正常的 MPFR 结果(用 更新mprf_subnormalize()
)与相应的不同double
结果。
我的问题是应该如何决定将哪些值传递给mpfr_set_emax()
和(尤其是) ,以保证具有指数边界e_max和e_minmpfr_set_emin()
的浮点格式的正确次规范行为?似乎没有关于此事的任何详细文档或讨论。
衷心感谢,
詹姆士。
编辑 30/07/16:这是一个小程序,它演示了e_max和e_min用于单精度数的选择。
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:
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.
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_file
将mpfr_out_str
行更改为,stdout
那么该数字将按我希望的方式打印到屏幕上,但我不知道如何将其放入文件中。
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。
谁能帮我安装这些库。
c++ - MPFR C++ 打印浮点数,如整数
刚刚成功地使用 MPFR C++ 编译了一个程序(第一次),我需要打印出一些相当大的数字,但它们只是作为工程符号而不是整数出现。根据我的阅读,该库没有针对(任意)整数进行优化,因此可以使用浮点数作为整数,因为它们不会有任何小数。我只是 C++ 的初学者,所以我不知道如何使用所有可用的工具,但是有没有办法打印出(大)浮点数,就好像它们是整数一样?例如,代替 (say) 1.12276e+44
, print 112275575285571389562324404930670903477890625
。如果我尝试std::cout.precision(44)
,我会得到1.12275575285571389562324404930670903477890625e+44
,这看起来并没有更好。
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()
呢?
python - Python多精度有理比较:Fraction、mpq和mpfr
我了解浮点计算由于其性质而不准确。我正在尝试找出进行多精度定量比较的最佳库/方法。我在比较分数、mpq 和 mpfr。后两个来自 gmpy2 库。第一个来自分数包。我正在使用python3.3
这是我用来比较的脚本。写的不是很好,很简单。
这是结果:
所以基本上我得到的结果是分数是最准确的,但它非常慢。对于这个问题,我想问,
- 您认为我还应该尝试其他任何情况吗?
- 任何其他图书馆?
- 如果速度很重要,有没有办法使用 gmpy2 库来提高精度?
c - 错误:声明为在 c 中返回数组的函数(mpfr 库)
我是mpfr的初学者,我编写了这个程序来进行特定的计算并得到它,但我不知道为什么会出现这个错误,这是我最重要的代码:
怎么了 ??
c++ - 使用 std::vector 动态分配的 mpfr_t 矩阵
我想要一个作为 mpfr_t 元素矩阵的类。我认为 STL Vectors 将是一个好主意,可以根据需要动态分配任意数量的这些,但我在这里遇到了一些错误。
错误是:
我真的研究过这个,我无法弄清楚。有没有办法制作vector< vector<mpfr_t> >
作品?有谁知道发生了什么?
javascript - 使用 Emscripten 编译 GMP/MPFR
好吧,这让我发疯了。我已经尝试了至少一个月,互联网上没有任何帮助。
我按照这个的步骤。当我执行这些步骤时,甚至该示例都不起作用,因为当我这样做时,我得到了这个。
当我运行生成的 complete.js 文件时 -