Tag: 任意精度

肢体在任意精度整数的词汇表中?

“肢体”在任意精度整数的域中指的是什么?

任意精度分数算术中的浮点数与有理数(C / C ++)

由于实现AP分数的方法有两种,一种是模拟double数据类型的存储和行为,只有更多的字节,另一种是使用现有的整数APA实现来表示分数作为理性即作为一对整数,分子和分母,这两种方式中的哪一种更有可能在性能方面提供有效的算术? (内存使用率确实很小。) 我知道现有的C / C ++库,其中一些提供带有“浮点数”的小数APA,另一些提供有理数的(不过它们都没有定点APA,但是当然我可以对依赖于“的库进行基准测试”浮动“对使用合理实现的实现进行实现,但结果很大程度上取决于我必须从近十个可用库中随机选择的那些特定库的实现细节。 因此,我感兴趣的两种方法的理论优缺点(或者如果考虑定点APA则为三种)。

如何处理不适合任何语言数据结构的大整数

我正在尝试解决编程竞赛的初步问题以及我必须计算的两个问题,并打印一些非常大的整数(如100!,2 ^ 100)。 我还需要一种快速的方法来计算这个大整数的幂。 你可以为我建议一些算法或数据结构吗?(顺便说一下,我读过C接口和实现的’任意精度算术’部分,但它对pow()没有帮助) 编辑:我认为通过平方法和位移的取幂对功率起作用,但我还需要一种快速的方法来计算这个因子的阶乘。 谢谢。 EDIT2:对于那些感兴趣的人; 找到包含长度为N的所有位串的最短位串长度(对不起我的英文,我会给出一个例子)。 N <= 10000 例如,包括长度为2(00,01,10,11)的所有位串的最短位串长度是5(11001)。 我对这个问题的解决方案是2 ^ n + n – 1.(所以我应该计算2的幂,我想我会使用位移) 其他问题是,给定2个长度,找到你可以通过多少种方式达到长度N.例如,输入是10,2,3。那么你应该用2和3达到10(例如,2 + 3) 2 + 2 + 2 + 2,2 + 2 + 3 + 3,3 + 2 + 2 + 3,3 + 3 + 2 + 2 ……)。 1 <= N <2 ^ 63。 […]

让GCC在没有内联汇编的情况下使用进位逻辑进行任意精度算术?

使用任意精度算术(例如512位整数)时,有没有办法让GCC在不使用内联汇编的情况下使用ADC和类似指令? 乍一看GMP的源代码显示,它们只是为每个支持的平台提供了汇编实现。 这是我编写的测试代码,它从命令行添加两个128位数字并打印结果。 (受mini-gmp的add_n启发): #include #include #include int main (int argc, char **argv) { uint32_t a[4]; uint32_t b[4]; uint32_t c[4]; uint32_t carry = 0; for (int i = 0; i < 4; ++i) { a[i] = strtoul (argv[i+1], NULL, 16); b[i] = strtoul (argv[i+5], NULL, 16); } for (int i = 0; i < 4; […]

什么是C ++的最佳(速度)任意精度库?

我需要可用于C ++的最快的库。 我的平台将是x86和x86-64,它支持浮点。