问题标签 [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 投票
3 回答
3945 浏览

python - 在 windows 中为 python 安装 bigfloat、GMP 和 MPFR

我正在尝试在 Windows 7 机器上的 Python 3.2 中安装 bigfloat。文档说我首先需要安装 GMP 和 MPFR。我已经将这两个下载到我的桌​​面(以及 bigfloat 包)。然而,由于它们是 C 包,我不确定如何在 python 中安装它们(我试图在过去几个小时内找到一个明确的解释但失败了)。任何人都可以告诉我我需要做什么或指向我的教程吗?非常感谢,非常感谢任何帮助。

0 投票
0 回答
705 浏览

parallel-processing - OpenMP 开销和 linux 内核版本

我使用了一个小测试程序来测试 OpenMP 的效率,以使用 mpfr/gmp 库使用任意精度并行化递归计算。正如预期的那样,OpenMP 开销一开始会使并行版本变慢,但使用足够的位后,并行版本会变得更快。

顺序循环如下:

和并行版本:

以秒为单位的运行时间系统 A:顺序

  1. 320 位:11
  2. 640 位:16
  3. 960 位:21
  4. 2560 位:60
  5. 5000 位:152

以秒为单位的运行时间系统 A:并行

  1. 320 位:15
  2. 640 位:16
  3. 960 位:18
  4. 2560 位:32
  5. 5000 位:65

以秒为单位的运行时间系统 B:顺序

  1. 320 位:13
  2. 640 位:18
  3. 960 位:27
  4. 2560 位:80
  5. 5000 位:202

以秒为单位的运行时间系统 B:并行

  1. 320 位:51
  2. 640 位:54
  3. 960 位:56
  4. 2560 位:76
  5. 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:并行

  1. 320 位:51 -> 23
  2. 640 位:54 -> 26
  3. 960 位:56 -> 29
  4. 2560 位:76 -> 47
  5. 5000 位:128 -> 99

B 仍然落后于 A,但差距已经小了很多。

0 投票
1 回答
92 浏览

c - MPFR 未正确复制数据

代码似乎都是正确的,它应该将 e 复制到 er 并将 pi 复制到 pir。当我运行程序时,这是我得到的:

我的问题是,我使用的舍入模式是否存在问题?因为第二个 e 和 p 不应该为零。

0 投票
1 回答
431 浏览

r - 将 mpfr 对象列表折叠成单个 mpfr 向量

我一定遗漏了一些明显的东西:

我有一个返回长度为 1 的 mpfr 的函数。在上面的示例中,我使用mapply(..., simplify=FALSE)构建类似于 list.mpfr 的内容。我想将长度为 1 的 mpfr 对象组合成一个 mpfr 对象(which.max例如,我可以调用 )。

0 投票
1 回答
1032 浏览

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 时,是否还有其他注意事项?

0 投票
1 回答
550 浏览

r - 为 R 中的函数应用包 mpfr

我想为一个函数应用包 mpfr,如下所示:

例如,如果x = c(-1500, -2000, -6400, -7200)

我想得到函数 f1 的值,即使它很小,我怎样才能在 R 中得到它?

0 投票
2 回答
658 浏览

c++ - 使用 MPFR 舍入为整数

我编写了一个小程序来计算斐波那契数的位数,但由于数字很大,我不得不使用 MPFR 和 GMP。我得到了正确的值,但我需要能够将它们四舍五入到最接近的整数,并且 MPFR 包含的舍入模式可以预测地四舍五入到浮点值。有没有一种简单的方法可以将 mpfr_t 舍入为 int?

0 投票
0 回答
36 浏览

c++ - 在长链算术运算中重新使用 mpfr_t

我正在编写一个使用 mpfr_t 作为其主要数据类型的函数。在这个函数中,会有很长的操作链需要临时变量来存储中间结果。我想尽量减少我需要的临时变量的数量,所以我正在做这样的事情:

然后在函数后面:

我可以依靠 tmp1 的先前值在重新分配变量时从变量中完全清除e*f吗?

0 投票
2 回答
791 浏览

c++ - 我需要非常快地计算斯特林的近似值

我正在编写一个用于统计抽样的小型库,它需要尽可能快地运行。在分析中,我发现函数中大约 40% 的时间用于计算斯特林对阶乘对数的近似值。我将我的优化工作集中在这部分上。这是我的代码(使用MPFR):

我有几个不同的想法:

  • 预先计算超过函数的前 8 个输入。
  • 优化数学(使用更粗略的近似以获得更小的精度)
  • 使用多个线程并行计算不同的输入
  • 当数字可以适合机器数据类型时切换到本机算术

我可以采取其他方法吗?

0 投票
1 回答
2056 浏览

c++ - 如何在 boost::multiprecision::mpfr 中使用复数?

根据https://stackoverflow.com/a/17932632/1700939,应该可以使用带有 boost::multiprecision 和 gcc-4.7 的复数。这确实适用于 boost::multiprecision::float128:

使用 boost::multiprecision::mpfr 尝试相同的操作失败 -Function expsin工作正常(!))

编译失败:

但是,如果exp-line 被注释掉,它可以工作:

我做错了什么,还是我在这里遇到了错误?