首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >GMP仿生运算

GMP仿生运算
EN

Stack Overflow用户
提问于 2010-01-24 11:42:07
回答 2查看 300关注 0票数 1

正如我们所知,GMP是最流行的处理大整数的工具。关于GMP,我有两个问题。1.如何在GMP库中进行内部计算?假设一个两个字节的整数,另一个三个字节的整数,在内部对这些原始位执行的操作是什么!??2. GMP的性能速度如何比其他通用库高!?

提前谢谢..对我来说,了解这些东西对我的项目非常重要

EN

回答 2

Stack Overflow用户

发布于 2010-01-24 12:18:14

本页面(http://gmplib.org/manual/Algorithms.html)描述了GMP用于其操作的算法。

此外,GMP库是开源的,因此您可以自行下载和查找。

票数 1
EN

Stack Overflow用户

发布于 2021-12-18 00:32:16

GMP使用本地整数运算来执行所有多精度算术运算。浮点算术太混乱而无法完全信任,这就是GNU MPFR依赖GMP进行多精度浮点运算的原因。原因是IEEE浮点标准754/854/等太麻烦了,从来没有完全实现过,而且实现方式在不同的平台上差别很大。

  1. 所有GMP整数和有理函数都依赖于mpn_...函数,这是对自然数的低级操作。例如,mpz_...函数使用符号大小表示和处理符号,然后使用mpn_...函数进行大小运算。基本的GMP数字类型是在gmp.h中定义的mp_limb_t类型,所有GMP操作都在该类型上完成,根据平台的不同,可以是unsigned intunsigned long intunsigned long long int。在几乎所有的平台上,所提供的例子,2字节和3字节的整数,将适合unsigned int类型,因此GMP将在单个镜头上使用本机整数操作来执行大多数基本算术。当您计算的数字大于一个肢体时,GMP将分配多个肢体来执行多精度计算并适当地处理进位(例如,请参阅此book)。请参阅this GMP手册条目,以了解库如何在肢体上单独运行。

  1. 这就是为什么GMP被广泛使用的原因,它既准确又快速,同时又非常便携。GMP的mpn/目录包含基本算术运算的每个处理器的具体实现,为每个最常用的处理器高度优化的代码: x86,ARM,CRAYs,IA64,mips,powerpcs,sparcs等。每个基本操作都以最好的方式在机器码中实现,并且GMP提供的自动工具(Autoconf和Automake)将知道哪一个链接到您编译GMP的特定目标的高级函数。请注意,您还可以在编译前将GMP调优到您的机器上,以便它可以使用最佳算法来计算许多不同的整数大小(请参阅here).
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2125823

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档