问题标签 [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.
python - 在 windows 中为 python 安装 bigfloat、GMP 和 MPFR
我正在尝试在 Windows 7 机器上的 Python 3.2 中安装 bigfloat。文档说我首先需要安装 GMP 和 MPFR。我已经将这两个下载到我的桌面(以及 bigfloat 包)。然而,由于它们是 C 包,我不确定如何在 python 中安装它们(我试图在过去几个小时内找到一个明确的解释但失败了)。任何人都可以告诉我我需要做什么或指向我的教程吗?非常感谢,非常感谢任何帮助。
parallel-processing - OpenMP 开销和 linux 内核版本
我使用了一个小测试程序来测试 OpenMP 的效率,以使用 mpfr/gmp 库使用任意精度并行化递归计算。正如预期的那样,OpenMP 开销一开始会使并行版本变慢,但使用足够的位后,并行版本会变得更快。
顺序循环如下:
和并行版本:
以秒为单位的运行时间系统 A:顺序
- 320 位:11
- 640 位:16
- 960 位:21
- 2560 位:60
- 5000 位:152
以秒为单位的运行时间系统 A:并行
- 320 位:15
- 640 位:16
- 960 位:18
- 2560 位:32
- 5000 位:65
以秒为单位的运行时间系统 B:顺序
- 320 位:13
- 640 位:18
- 960 位:27
- 2560 位:80
- 5000 位:202
以秒为单位的运行时间系统 B:并行
- 320 位:51
- 640 位:54
- 960 位:56
- 2560 位:76
- 5000 位:128
系统 A 是 Fedora 19 内核 3.11.10-200.fc19.x86_64
Intel(R) Core(TM) i7-4770 CPU @ 3.40GHz
系统 B 是 Linux Centos 6.5 内核 2.6.32-431.1.2.0.1.el6.x86_64
Intel(R) Xeon(R) CPU E5-2697 v2 @ 2.70GHz
ltrace 显示被调用函数/系统调用的百分比大致相同。两个系统都使用最新的 gmp、mpfr 和 gcc 版本。为什么系统 B 比系统 A 差很多(例如,OpenMP 开销大很多倍)?Linux 内核在这方面变得更好了吗?任何内核参数等我应该看看?CPU硬件差异/限制?还有其他解释吗?我必须在 B 上安装 Fedora 19 来解决这个问题吗?
更新:感谢您的提示。它确实改变了系统 B 的结果。
以秒为单位的运行时间系统 B:并行
- 320 位:51 -> 23
- 640 位:54 -> 26
- 960 位:56 -> 29
- 2560 位:76 -> 47
- 5000 位:128 -> 99
B 仍然落后于 A,但差距已经小了很多。
c - MPFR 未正确复制数据
代码似乎都是正确的,它应该将 e 复制到 er 并将 pi 复制到 pir。当我运行程序时,这是我得到的:
我的问题是,我使用的舍入模式是否存在问题?因为第二个 e 和 p 不应该为零。
r - 将 mpfr 对象列表折叠成单个 mpfr 向量
我一定遗漏了一些明显的东西:
我有一个返回长度为 1 的 mpfr 的函数。在上面的示例中,我使用mapply(..., simplify=FALSE)
构建类似于 list.mpfr 的内容。我想将长度为 1 的 mpfr 对象组合成一个 mpfr 对象(which.max
例如,我可以调用 )。
linux - 如何使用 cloog 部署便携式 gcc?
我正在尝试构建 gcc 4.8.2 的可移植版本。(仅适用于 C/C++ 语言)最终结果是将 gcc 安装到特定的应用程序目录中,例如 /opt/gcc-4.8.2,以便我可以将该目录从一台计算机复制到另一台计算机(所有计算机都是英特尔 corei5或 corei7,运行最新的 Linux 版本,例如 Ubuntu 12、Suse 10/11、Centos 5 和 6)。
到目前为止,我能够构建 gcc ok,使用 --prefix 将 gcc 输出放置在单个目录中(然后可以将其复制到其他主机)。我将 gcc 的依赖项(gmp、mpfr、mpc、isl)配置和构建为具有 --disable-shared,因此我可以确定最终的 gcc 在复制到其他主机时不会抱怨缺少库或符号。
我有一个关于cloog的问题。我使用 --with-cloog 配置了 gcc(以获取我本地构建的 cloog,它是与其他 gcc 依赖项一起构建的)。但是,我不知道的是,我是否还需要将 clog 库和二进制文件复制到我将 gcc 复制到的每个主机?
另外,我如何测试 gcc 和 clog 交互?是否有一个简单的 C 文件示例和/或 gcc 命令行可用于测试 gcc 是否成功使用 cloog?
此外,在尝试构建我想在其他主机上运行的 gcc 时,是否还有其他注意事项?
r - 为 R 中的函数应用包 mpfr
我想为一个函数应用包 mpfr,如下所示:
例如,如果x = c(-1500, -2000, -6400, -7200)
我想得到函数 f1 的值,即使它很小,我怎样才能在 R 中得到它?
c++ - 使用 MPFR 舍入为整数
我编写了一个小程序来计算斐波那契数的位数,但由于数字很大,我不得不使用 MPFR 和 GMP。我得到了正确的值,但我需要能够将它们四舍五入到最接近的整数,并且 MPFR 包含的舍入模式可以预测地四舍五入到浮点值。有没有一种简单的方法可以将 mpfr_t 舍入为 int?
c++ - 在长链算术运算中重新使用 mpfr_t
我正在编写一个使用 mpfr_t 作为其主要数据类型的函数。在这个函数中,会有很长的操作链需要临时变量来存储中间结果。我想尽量减少我需要的临时变量的数量,所以我正在做这样的事情:
然后在函数后面:
我可以依靠 tmp1 的先前值在重新分配变量时从变量中完全清除e*f
吗?
c++ - 如何在 boost::multiprecision::mpfr 中使用复数?
根据https://stackoverflow.com/a/17932632/1700939,应该可以使用带有 boost::multiprecision 和 gcc-4.7 的复数。这确实适用于 boost::multiprecision::float128:
使用 boost::multiprecision::mpfr 尝试相同的操作失败 -Function exp
(sin
工作正常(!))
编译失败:
但是,如果exp
-line 被注释掉,它可以工作:
我做错了什么,还是我在这里遇到了错误?