- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
#include <gmpxx.h>
int main() {
mpq_class a("1/-2");
mpq_class b("1/-3");
mpq_class c = a + b;
printf("%s\n", c.get_str().c_str());
}
根据 GMP 手册,当将无效表示字符串传递给构造函数时,应该会引发异常。然而,GMP 在这种情况下没有。
此外,尝试下面的代码,它会导致段错误:
#include <gmpxx.h>
class Container {
public:
mpq_class rat;
Container(mpq_class _rat) : rat(_rat) {}
};
int main() {
mpq_class a("1/-3");
Container *c = new Container(a);
}
这是一个错误吗? GMP 如此出名,我简直不敢相信它会这么容易崩溃。
最佳答案
您误解了手册,有理数的 C++ 接口(interface)部分开始于:
In all the following constructors, if a fraction is given then it should be in canonical form, or if not then `mpq_class::canonicalize' called.
这意味着如果您传入一个可以解析但不是规范形式的分数,那么您必须对其调用canonicalize
。
If the string is not a valid rational, an `std::invalid_argument' exception is thrown.
指的是字符串根本无法解析的情况。
可以说,文档在这方面可以更清楚。
关于c++ - 负分母让GMP崩溃?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18145572/
任意精度库 GMP 和 MPFR 使用机器字大小整数的堆分配数组来存储构成高精度数字/尾数的肢体。 应该如何解释这个肢体数组以恢复任意精度整数?换句话说:对于 N 个肢体,每个肢体持有 B 位,我应该
任意精度库 GMP 和 MPFR 使用机器字大小整数的堆分配数组来存储构成高精度数字/尾数的肢体。 应该如何解释这个肢体数组以恢复任意精度整数?换句话说:对于 N 个肢体,每个肢体持有 B 位,我应该
我想安装 R 的 Rmpfr 库,所以我在 R 中输入: install.packages("Rmpfr") 这个包需要安装GMP C库,在Ubuntu中可以在终端输入安装 sudo apt-get
我刚开始使用 GMP,因为我需要检查任何一个功能。 我下载了 gmp-6.0.tar,将其解压,然后在我的代码中使用了 gmp_printf。 现在,当我打开 gmp_printf.c 时,它有一个头
我正在尝试让 GMP 与 Xcode 一起工作。到目前为止,我已经解压缩了主目录中的文件,运行了所有必要的命令来配置、制作和安装 ./configure --prefix=/usr/local --e
GMP库中是否实现了任何对数函数? 最佳答案 没有,GMP中没有这样的功能。 仅在MPFR中。 关于gmp - 有GMP对数函数吗?,我们在Stack Overflow上找到一个类似的问题: http
如何知道 GMP 中声明变量的大小?或者我们如何确定 GMP 中整数的大小? mpz_random(temp,1); 在手册中,该函数将 1limb(=32bits for my comp) 大小分配
我想生成一个 n 字节的随机整数 z,这样 2^(n-1) <= z <= 2^n - 1 每当我运行以下代码时,gmp 会输出完全相同的整数,我做错了什么? // Random int of n b
考虑以下代码 // BOGP.cpp : Defines the entry point for the console application. // #include "stdafx.h" #in
我正在开发一个程序,用于在 C++ 中分解非常大的数字(20 位或更多),并且正在使用 GMP 来处理溢出问题。我的程序对于大约 10 位或更少的数字运行良好,但是当我向它抛出一个 15 位数字时,它
根据 GMP 手册,“整数运算函数假设所有整数对象都已初始化。您可以通过调用函数 mpz_init 来完成此操作。” 例如, int main(){ mpz_t n1, n2, result;
我对模块编码很陌生,我需要在模块中运行一些使用 GMP 库的计算。 所以第一个问题:通常可以在内核中运行 GMP 吗?为了测试,我编写了这个模块: #include #include #inclu
是否可以在独立环境中使用 GMP? 我正在开发一个必须在裸机上运行的程序(为了减少开销并出于安全目的 - 不允许使用外部代码),这迫使我创建一个简约的内核,但是,我还需要使用 GMP任意大的整数。我研
我需要计算三个二维数组。当我尝试使用 GMP 库初始化数组时。我收到以下错误: GNU MP: Cannot allocate memory (size=16) Aborted (core dumpe
这是为数学极客准备的;) 我正在编写一个小型 C 程序,使用 GNU MP 库来计算前 10 个斐波那契数。这是我的尝试: #include "gmp.h" #include #include #
我正在尝试获取 gmp 上的机器精度变量。 为此,我改编了 wikipedia 中的代码,以固定精度计算 gmp 的精度: int main( int argc, char **argv ) {
目前我正在查看 GMP 库的文档,我在理解函数规范中列出的变量的命名约定时遇到了一些困难。 特别是 rop 和 op 的使用让我感到困惑。 这是列出导入和导出函数的页面,由于我对命名约定的混淆,我很难
我正在尝试编写这样的代码 .... mpz_class *x = NULL; mpz_class *lValue = NULL; .... for(int k = 0; k 分配你的数组。尽管您已经为
我正在使用 GMP 包来实现两个函数的乘积,我表示为两个收敛级数的柯西乘积。 更详细地说:我正在寻找一种方法来计算 f(x)=g(x)*h(x)其中 g(x)是指数函数,h(x)是一个特殊的超几何函数
我在 debian/amd64 上,我想使用 NDK-7b 为 android 2.2 交叉编译 GMP。我从 [gmplib](hg clone http://gmplib.org:8000/gmp
我是一名优秀的程序员,十分优秀!