问题标签 [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++ - How to send GMP or MPFR types with MPI
I trying to send variables of type mpfr_t
using MPI_Scatter
. For example:
It prints:
But it's work of MPI_Bcast. What I do wrong. Code C/C++, MPI lib is OpenMPI-1.6.
c++ - 析构函数中的 mpfr_free_cache - 好主意?
MPFRC++
我需要 C++ 程序中的任意精度,因此我在多精度浮点 C-library 上使用众所周知的轻量级 C++ 包装器MPFR
。
我一直有记忆问题。即,malloc
在 MPFR 功能内失败。(如果您有兴趣,请在底部显示一小段错误消息)。
MPFR 手册说(第 10 页)
MPFR 函数可能会创建缓存,例如,在计算诸如 pi 之类的常量时,要么是因为用户直接调用了类似 mpfr_const_pi 的函数,要么是因为 MPFR 库本身在内部调用了这样的函数来计算某个其他函数。
在任何时候,用户都可以使用 mpfr_free_cache 释放各种缓存。强烈建议在终止线程之前执行此操作...
我的程序是多线程的,所以我想我需要开始使用这个mpfr_free_cache
.
问题:
我可以简单地放入包装类mpfr_free_cache()
的析构函数吗?这是安全和良好的做法吗?是否足以解决问题?(假设我已经正确识别出内存泄漏)
例如
// mpreal.cpp - 包装器的实现
我不是专业的开发人员,所以我不知道这是否真的是解决问题的最佳方法。但我对进入每个 OpenMP 多线程区域/for-loop 并挤进一个mpfr_free_cache()
...
注意:我已经使用线程安全选项构建了 MPFR。
这是错误消息,如果您有兴趣...
错误消息中引用的代码:
c++ - gcc 4.7.1 构建以未定义的引用结束
我得到一个
fortran/arith.o:在函数
gfc_mpfr_to_mpz(__mpz_struct*, __mpfr_struct*, locus*)': arith.c:(.text+0x1169): undefined reference to
mpfr_get_z_2exp'
来自 gcc 4.7.1 构建过程。我正在关注
但是,我对
下载_先决条件
脚本。那就是我正在下载 gcc 的所有先决条件的最新版本,因为上面的链接是为 gcc 4.6 提供的,所以原始版本正在下载一些较旧的先决条件。但是,它找不到一些与 mpfr 库相关的符号。
一个相关的谷歌搜索给了我这个线程,但它也没有帮助我,也许其他人的理解与我不同:
有关如何解决此问题的任何提示?
c++ - fast arbitrary precision c++ library: is __float128 faster than MPFR?
I know there are a couple of thread on similar topics ( What's the best (for speed) arbitrary-precision library for C++? and The best cross platform (portable) arbitrary precision math library ) and I take from these threads than GMP or something based on it like MPFR is the fastest lib available, but I am specifically wondering: if I only wanted say 30 dec places would __float128 of the quadmath lib be faster?
Also how does MAPM stack up against MPFR?
It looks from this website:
http://pari.math.u-bordeaux.fr/benchs/timings-mpfr.html
that MPFR does pretty well, but there are also CLN and apfloat?
gcc - gmp, mpc + mpfr:不是符号链接
我构建了 gcc 4.6.1,当我运行ldconfig
它时,它会返回以下结果:
这是我使用库构建 gcc 的方式:
请说我不需要重建 gcc!这个符号链接问题真的会影响程序吗?或者它不会有任何区别,它会时不时地弹出,例如当我也是yum install
某些事情的时候。提前致谢。
c++ - 32 位 Linux 与 64 位 Linux 和 MPFR 上的 long long int
long long int
与 64 位 Linux 相比,32 位 Linux 系统究竟如何处理?
在我的 32 位系统上,我对 MPFR 数据类型使用C++ 包装器;这个包装器有一个为long int
但不是定义的构造函数long long int
。然而,在 32 位系统上,这段代码可以正常工作:
这怎么可能?32 位 gcc 是否只是以某种方式将数据类型long long int
转换long int
为具有构造函数的语句?如果上面的代码在 64 位 Linux 上运行,那么编译器会导致构造不明确的错误。mpreal
我知道有些人会告诉我根本不要long long int
在 64 位上使用,但不幸的是,我正在使用另一个库(odeint),它内置在代码中以这种方式构造我给定的多精度数据类型,所以我不'认为我不能改变事情。
无论如何与64位long long int
完全相同吗?long int
如果我投到 会丢失数据long int
吗?例如,如果我制作自己的构造函数,例如:
c - 如何创建 makefile 以使用 mpir 和 mpfr 库
我最近编写了一个使用公共域 mpir 和 mpfr 库的 C 程序。我一直在使用 Microsoft Visual C++ 10.0 编译器在 Windows 上编译它。为了让它发挥作用,我必须执行以下操作:
- 从http://gladman.plushost.co.uk/oldsite/computing/gmp4win.php下载/构建 mpir 和 mpfr 库
- 将文件移动
mpir.h
到mpfr.h
Microsoft 编译器的 Include 目录中 - 将文件
mpir.lib
、、mpir.pdb
和移动mpfr.lib
到mpfr.pdb
Microsoft 编译器的 lib 目录中 #include
mpir.h
并且mpfr.h
在程序中- 编译使用
cl <..module names..> /link mpir.lib mpfr.lib
我现在想将我编写的源文件/头文件发送给其他人,以及他们可以用来编译代码并检查它是否工作的 makefile。由于该人不会安装 mpir / mpfr 库,并且可能不会使用相同的编译器,因此我不太确定如何执行此操作。
这是我能做的:
- 将二进制文件
mpir.lib
、、mpir.pdb
以及源mpfr.lib
/mpfr.pdb
头文件发送给他们。
这是我不能做的:
- 将我的整个 Microsoft Visual C++ 10.0 设置发送给他们
- 要求他们将文件粘贴到他们的
Include
目录中lib
(除非没有其他办法)
理想情况下,我应该能够向他们发送源/头文件,以及相关的 mpir/mpfr 二进制文件,以及他们可以运行以构建程序的 makefile。
在此先感谢您的帮助!
c++ - makefile 不适用于 c++ zkcm-library - 找不到 mpfr-functions
我有一个用于使用 zkcm 库的某些程序的 makefile,包括以下对象行:
编译器抱怨有一个“未定义的对 '_ imp _mpfr__inits2' 的引用”,并且每次使用 mpfr 函数时都是一样的。奇怪的是,makefile 中还有其他对象使用 mpfr 函数没有问题,例如主程序(第一行):
在这两种情况下,我都#include<mpfr.h>
在源代码中,如您所见,使用-lmpfr
. 任何想法为什么这适用于 SpMC.cpp 但不适用于 zkcm_c.cpp?
r - 使用带有 gmp 和机器限制的大整数
我想知道是否可以在 R 中使用大于.Machine$double.xmax
( ~1.79e308
) 值的整数。我认为通过在 R 中使用 egRmpfr
或gmp
库,您可以分配任何大小的值,直到系统上的 RAM 限制?我认为这大于.Machine$double.xmax
但显然不是。
有人可以解释为什么使用 64 位内存寻址的计算机不能存储大于 1.79e308 的值吗?抱歉 - 我没有计算机科学背景,但我正在努力学习。
谢谢。
compilation - 安装 MPFR (3.1.0) 时出错
我正在尝试使用此链接 (第 3 部分)中的说明安装 MPFR(3.1.0),但出现以下错误:
检查 gmp 内部文件...配置:错误:找不到头文件 gmp-impl.h 和 longlong.h
我已经使用同一页的说明安装了 gmp (5.0.5),看起来 gmp 的安装是成功的。
有人可以帮助我了解问题所在,或提出解决方法吗?
任何帮助是极大的赞赏!
编辑:我这样做后得到错误
./configure --with-gmp-build=GMPBUILD # GMPBUILD=/usr/gmp/gmp-5.0.5