【发布时间】:2011-06-26 15:39:12
【问题描述】:
目前我在 PARI/GP 中有一些代码,它实现了基于循环计算序列的值。此序列中的所有数字都介于 0 和 1 之间,并且高精度很重要(至少 50 位)。是否有任何语言支持并行编程,精度高,并且能够快速完成基本的算术运算,如 +、-、*、/(如 PARI)?
【问题讨论】:
目前我在 PARI/GP 中有一些代码,它实现了基于循环计算序列的值。此序列中的所有数字都介于 0 和 1 之间,并且高精度很重要(至少 50 位)。是否有任何语言支持并行编程,精度高,并且能够快速完成基本的算术运算,如 +、-、*、/(如 PARI)?
【问题讨论】:
是否有任何语言支持并行编程、高精度,并且能够快速执行基本算术运算,例如 +、-、*、/(如 PARI)?
有点错误的问题 - 您想问的是,是否有任何库可以绑定到您选择的语言,从而允许您进行任意精度的算术运算。
答案是肯定的。看看GMP 或专注于支持Windows MPIR 的分支。这两个都将尽可能优化地处理这些基本的算术运算。
您可能还会发现适合您需要的其他库变得有用,例如 MPRF 或 MPC。
这些库绑定到 C 和一些 C++ 以及 Python。
GMP 特别是 PARI/GP 代码的一部分,尽管 PARI 添加了许多扩展。
$ ldd gp
linux-vdso.so.1 => (0x00007fffe46d9000)
libreadline.so.6 => /lib64/libreadline.so.6 (0x0000003b01e00000)
libtinfo.so.5 => /lib64/libtinfo.so.5 (0x0000003b0d600000)
libpari-gmp.so.2 => /usr/lib64/libpari-gmp.so.2 (0x0000003afbe00000)
libdl.so.2 => /lib64/libdl.so.2 (0x0000003afb600000)
libm.so.6 => /lib64/libm.so.6 (0x0000003afba00000)
libgmp.so.3 => /usr/lib64/libgmp.so.3 (0x0000003afce00000)
libc.so.6 => /lib64/libc.so.6 (0x0000003afae00000)
/lib64/ld-linux-x86-64.so.2 (0x0000003afaa00000)
【讨论】:
【讨论】: