跳转到内容

GNU多重精度运算库

本页使用了标题或全文手工转换
维基百科,自由的百科全书
GNU Multiple Precision Arithmetic Library
開發者GNU计划
首次发布1991年 (1991)[1]
当前版本6.3.0[2]在维基数据编辑(2023年7月30日)
源代码库 編輯維基數據鏈接
编程语言C语言
操作系统跨平台
类型数学软件
许可协议LGPL
网站gmplib.org

GNU多重精度运算库(英語:GNU Multiple Precision Arithmetic Library,简称GMP或gmpal)是一个开源的任意精度运算库,支持正负数的整数有理数浮点数。它没有任何精度限制,只受限于可用内存。GMP有很多函数,都有规则的接口。GMP是用C语言写成的,但也为其他很多语言做了包装,包括AdaC++C#OCamlPerlPHPpythonR。GMP主要运用于加密应用和研究、互联网安全应用、计算机代数系统和计算代数研究。GMP的目标是成为最快的大数运算库,GMP是GNU项目的一部分,它在GNU宽通用公共许可证下发表。GMP在许多计算机辅助代数系统中用于整数运算,如MathematicaMaple。GMP需要使用GCCGNU编译器套装)编译。

示例

[编辑]

这是一个C语言示例,它展示了如何使用GMP做乘法运算并输出。

#include <stdio.h>
#include <stdlib.h>
#include <gmp.h>

int main(void)
{
 mpz_t x;
 mpz_t y;
 mpz_t result;

 mpz_init(x);
 mpz_init(y);
 mpz_init(result);

 mpz_set_str(x, "7612058254738945", 10);
 mpz_set_str(y, "9263591128439081", 10);

 mpz_mul(result, x, y);
 gmp_printf("\n    %Zd\n*\n    %Zd\n--------------------\n%Zd\n\n", x, y, result);

 /* free used memory释放内存*/ 
 mpz_clear(x);
 mpz_clear(y);
 mpz_clear(result);
 return EXIT_SUCCESS;
}

这段代码计算7612058254738945和9263591128439081的乘积。

编译运行,获得这样的输出:(在类UNIX系统下,需要使用 -lgmp 参数)

    7612058254738945
*
    9263591128439081
--------------------
70514995317761165008628990709545

也可以用C++完成相同的运算。(在类UNIX系统下,需要使用 -lgmp 参数)

#include <iostream>
#include <gmpxx.h>

int main()
{
  mpz_class x("7612058254738945");
  mpz_class y("9263591128439081");

  std::cout << "\n    " << x << "\n*\n    " << y;
  std::cout << "\n--------------------\n" << x * y << "\n\n";
}

语言支持

[编辑]
Library name 语言 许可证
GNU Multi-Precision Library页面存档备份,存于互联网档案馆 C, C++ LGPL
Math::GMP页面存档备份,存于互联网档案馆 Perl
GNU Multi-Precision Library for .NET C#, .NET LGPL
General Multiprecision Python Project页面存档备份,存于互联网档案馆 Python
The RubyGems project页面存档备份,存于互联网档案馆 Ruby
GNU Multi-Precision Library for PHP页面存档备份,存于互联网档案馆 PHP PHP
GNU Multi-Precision Routines for SBCL页面存档备份,存于互联网档案馆 Common Lisp
Ch GMP页面存档备份,存于互联网档案馆 Ch (计算机语言)英语Ch_(computer_programming)
Glasgow Haskell Compiler
(The implementation of Integer
is basically a binding to GMP)
Haskell BSD

参考资料

[编辑]
  1. ^ The GNU Multiple Precision Arithmetic Library. [29 October 2011]. (原始内容存档于2021-01-28). 
  2. ^ "GMP 6.3.0 released"; 作者姓名字符串: Torbjörn Granlund; 作品或名稱使用語言: 英語; 出版日期: 2023年7月30日; 检索日期: 2023年7月30日.

外部链接

[编辑]
pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy