Linux gmp что это

Linux gmp что это

Библиотека сайта rus-linux.net

На главную -> MyLDP -> Электронные книги по ОС Linux

Linux From Scratch (version 6.8)
Назад Глава 6. Установка программ базовой системы Вперед

6.13. Пакет GMP-5.0.1

В пакете GMP находятся математические библиотеки. Среди них есть функции, используемые для работы с арифметикой произвольной точности.

Приблизительное время сборки: 1,7 SBU

Требуемое дисковое пространство: 39 MB

6.13.1. Установка пакета GMP

Замечание

Если вы делаете сбоку для 32-битной архитектуры x86, но у вас есть процессор, который может выполнять 64-битный код и вы задали значение для переменной CFLAGS среды окружения, конфигурационный скрипт сделает попытку конфигурирования под 64-битный код и в результате сборка пакета потерпит неудачу. Избежать этого можно при помощи вызова конфигурационной команды с использованием следующего параметра

Подготовьте пакет GMP для компиляции:

Пояснение новых конфигурационных параметров:

Этот параметр включит поддержку C++

Этот параметр позволит собрать библиотеку, совместимую с требованиями Berkeley MP.

Важно

В этом разделе выполнение набора тестов для GMP считается важным. Не пропускайте его ни при каких обстоятельствах.

Проверьте, чтобы прошли все 162 теста из набора тестов. Проверьте результаты с помощью следующей команды:

Если желаете, то установите документацию:

6.13.2. Описание пакета GMP

Установленные библиотеки: libgmp., libgmpxx. и libmp.

Установленные директории: /usr/share/doc/gmp-5.0.1

Содержит математические функции для точных вычислений

Содержит математические функции языка C++ для точных вычислений

Содержит математические функции Berkeley MP

Источник

GMP 5.0.2 — The GNU Multiple Precision Arithmetic Library

Спустя 15 месяцев после выхода предыдущей версии, 8 мая 2011 года была опубликована версия 5.0.2 свободной открытой библиотеки для расчётов с произвольной точностью над целыми числами, рациональными дробями и числами с плавающей запятой GMP — The GNU Multiple Precision Arithmetic Library.

GMP является частью проекта GNU и распространяется на условиях GNU LGPL.

GMP находит применение в криптографических приложениях, научных исследованиях, алгебраических системах итп.

GMP написана с использованием языка ассемблера и C. При этом GMP считается одной из самых быстрых среди себе равных, как при вычислениях с операндами малой разрядности, так и при расчётах с большим количеством разрядов, благодаря оптимизированному коду и использованию асимптотически оптимальных алгоритмов.

Функции в GMP поделены на категории для удобства использования:

  • mpz — высокоуровневые арифметические и логические функции для операций над знаковыми целыми числами (около 140).
  • mpq — высокоуровневые арифметические функции для операций над рациональными дробями (около 35).
  • mpf — высокоуровневые арифметические функции для операций над числами с плавающей точкой (около 65) для вычислений с точностью не ниже двойной.
  • C++ классы для интерфейса к функциям категорий mpz, mpq, mpf.
  • mpn — низкоуровневые функции для операции с беззнаковыми целыми числами с менее удобным вызовом, но низкими накладными расходами. Используются функциями вышеперечисленных категорий.
  • mpfr — отдельно поддерживаемые и разрабатываемые высокоуровневые арифметические функции для операций над числами с плавающей точкой с высокоточным округлением.

В полном списке изменений, который можно найти в архиве с исходными кодами, всего около 30 изменений, большая часть из которых внесена автором и главным разработчиком GMP Торбйоном Гранлундом (Torbjörn Granlund), также известным соавторством во многих утилит командной строки в Linux (cp,split), авторством GNU superoptimizer’a, а также участием в разработке gcc.
Изменения главным образом касаются исправления ошибок, включения поддержки HPPA 2.0N, ОС Darwin и новых процессоров.

В вышедшем выпуске осталась проблема при компиляции с gcc 4.3.2 на 64-битных архитектурах. При этом проблем с компиляцией, например, с gcc 4.3.1 или gcc 4.3.3, не замечалось. Кстати тот факт, что именно gcc 4.3.2 был включен в поставку Debian Lenny, было и остаётся источником потока багрепортов в рассылку проекта.

GMP используется в библиотеке MPFR и, соответственно, в gcc.

На странице проекта можно ознакомиться с документацией, другой важной информацией для разработчиков и забавной программой для расчёта миллиона знаков числа пи с помощью GMP.

Источник

Linux gmp что это

«Arithmetic without limitations»

—enable-cxx
2021-09-29
GMP
30
years!
The GNU
Multiple Precision
Arithmetic Library

Last modified: 2021-09-29

Documentation: 6.2.1 HTML | 6.2.1 PDF
Download: gmp-6.2.1.tar.lz | Release notes
Development: Developers’ corner
GMPbench: Results | Download benchmark sources
Fun: Compute billions of digits of π using GMP!
Security: GMP server security policy
Page contents:
What is GMP?
Function categories
Download
Reporting bugs
Mailing lists
Current release status
Future releases

This site does not use cookies I agree!

The GMP computers are maintained by a single person on a volunteer basis. The ongoing Intel CPU bug debacle with Meltdown, Spectre, Foreshadow, MDS, the jCC/cache-line bug, Fallout, LVI, Portsmash, etc, etc, and the ME backdoor is making the main GMP server far from as secure as we’d like it to be.

The system which runs this web server as well as mail server, mailing list server, firewall, etc, has an Intel E5-1650 v2 which is affected by most of the bugs/backdoors mentioned above. Please keep that in mind when using the resources here.

Please understand that we don’t take security lightly, but that we effectively are DoS’ed by sloppy/malicious engineering.

Thanks to a very generous donation from Christian Calderon, the GMP project now has a brand new, AMD Epyc server which will replace the old server. This is great for GMP, not only because of the old server’s hardware security issues, but also since the new server is 3x more powerful than the old one.

The new server will be replacing the old server as soon as we have had time to install all subsystems, which we expect will happen by mid April.

Here are the specs of the system Christian has given us:

  • Supermicro barebone 1114S-WTRT
  • AMD Epyc 7402P 24-core CPU
  • 256 GiB of ECC RAM
  • 1.6 TB PCIe SSD disk (Samsung PM1735)

What is GMP?

GMP is a free library for arbitrary precision arithmetic, operating on signed integers, rational numbers, and floating-point numbers. There is no practical limit to the precision except the ones implied by the available memory in the machine GMP runs on. GMP has a rich set of functions, and the functions have a regular interface.

The main target applications for GMP are cryptography applications and research, Internet security applications, algebra systems, computational algebra research, etc.

GMP is carefully designed to be as fast as possible, both for small operands and for huge operands. The speed is achieved by using fullwords as the basic arithmetic type, by using fast algorithms, with highly optimised assembly code for the most common inner loops for a lot of CPUs, and by a general emphasis on speed.

The first GMP release was made in 1991. It is continually developed and maintained, with a new release about once a year.

Since version 6, GMP is distributed under the dual licenses, GNU LGPL v3 and GNU GPL v2. These licenses make the library free to use, share, and improve, and allow you to pass on the result. The GNU licenses give freedoms, but also set firm restrictions on the use with non-free programs.

GMP is part of the GNU project. For more information about the GNU project, please see the official GNU web site.

GMP’s main target platforms are Unix-type systems, such as GNU/Linux, Solaris, HP-UX, Mac OS X/Darwin, BSD, AIX, etc. It also is known to work on Windows in both 32-bit and 64-bit mode.

GMP is brought to you by a team listed in the manual.

GMP is carefully developed and maintained, both technically and legally. We of course inspect and test contributed code carefully, but equally importantly we make sure we have the legal right to distribute the contributions, meaning users can safely use GMP. To achieve this, we will ask contributors to sign paperwork where they allow us to distribute their work.

GMP function categories

There are several categories of functions in GMP:

  1. High-level signed integer arithmetic functions ( mpz ). There are about 150 arithmetic and logic functions in this category.
  2. High-level rational arithmetic functions ( mpq ). This category consists of about 35 functions, but all mpz functions can be used too, by applying them to the numerator and denominator separately.
  3. High-level floating-point arithmetic functions ( mpf ). This is the GMP function category to use if the C type `double’ doesn’t give enough precision for an application. There are about 70 functions in this category. New projects should strongly consider using the much more complete GMP extension library mpfr instead of mpf.
  4. C++ class based interface to all of the above. (The C functions and types can of course be used directly from C++ too.)
  5. Low-level positive-integer, hard-to-use, very low overhead functions are found in the mpn category. No memory management is performed; the caller must ensure enough space is available for the results. The set of functions is not always regular, nor is the calling interface. These functions accept input arguments in the form of pairs consisting of a pointer to the least significant word, and an integral size telling how many limbs (= words) there are in that argument. The functions in the other categories call mpn for almost all their calculations. Of these functions about 60 are public.

Download the latest release of GMP

GMP 6.2.1 lz, 2020558 bytes xz, 2027316 bytes zstd, 2101289 bytes
Main site, gmplib.org, via https gmp-6.2.1.tar.lz gmp-6.2.1.tar.xz gmp-6.2.1.tar.zst
USA, ftp.gnu.org, via https gmp-6.2.1.tar.lz gmp-6.2.1.tar.xz gmp-6.2.1.tar.zst

To try to verify that the file you have downloaded has not been tampered with, you can check that the GnuPG signature matches the contents of the file. Use your GnuPG software or a key server directly to get the key that was used for creating the signature. Starting from the repackaging of gmp-5.1.0 as gmp-5.1.0a.tar.* the following key is used to sign GMP releases:

Key ID: 0x28C67298
Key type: 2560 bit RSA
Fingerprint: 343C 2FF0 FBEE 5EC2 EDBE F399 F359 9FF8 28C6 7298

Instead of using a release, you may also get the latest code from the GMP repositories. This will require some more work compared to using a release.

Reporting bugs in GMP

Please first see the manual on how to report bugs. The proper address for bug reports is gmp-bugs at gmplib.org.

Most problems with GMP these days are due to problems not in GMP, but with the compiler used for compiling the GMP sources. This is a major concern to the GMP project, since an incorrect computation is an incorrect computation, whether caused by a GMP bug or a compiler bug. We fight this by making the GMP testsuite have great coverage, so that it should catch every possible miscompilation.

GMP mailing lists

List Subscribe URL Archive URL Purpose
gmp-bugs gmplib.org/mailman/listinfo/gmp-bugs gmplib.org/list-archives/gmp-bugs/ Bug reports (not questions!). See manual.
gmp-announce gmplib.org/mailman/listinfo/gmp-announce gmplib.org/list-archives/gmp-announce/ Announcements from the developers (very little traffic)
gmp-discuss gmplib.org/mailman/listinfo/gmp-discuss gmplib.org/list-archives/gmp-discuss/ Questions, Help, Discussions
gmp-devel gmplib.org/mailman/listinfo/gmp-devel gmplib.org/list-archives/gmp-devel/ Technical discussions between developers
gmp-commit gmplib.org/mailman/listinfo/gmp-commit gmplib.org/list-archives/gmp-commit/ Commit messages

Note that we perform spam and virus filtering of these lists. The lists have been 100% spam-free during the last years.

We’re blocking all mail from PR China, since 99% of the spam arriving to the GMP moderators emanates from PR China. If you are affected but have a legitimate reason to send mail to the GMP project, e.g., if you work at a university or corporation with an interest in GMP, please let us know; we will open access for you.

Status of the current release

The current stable release is 6.2.1, released 2020-11-14.

Issues with GMP 6.2.1:
  • While we added support for Apple’s new Arm based computers, our support has a problem. The problem is that Apple reserves CPU register x18, but GMP’s mpn/arm64 assembly code uses that register. While GMP runs fine in our tests, we expect things to go awry in some execution situation. (Apple has not been kind enough to specify how they use x18. Therefore, we don’t know what the consequences of using x18 might be.)
Issues with GMP 6.2.0:
  • MacOS Xcode 11 prior to 11.3 miscompiles GMP, leading to crashes and miscomputation.
Issues with GMP 6.1.2:
  • MacOS Xcode 11 prior to 11.3 miscompiles GMP, leading to crashes and miscomputation.
Issues with GMP 6.1.1:
  • There are several issues with mini-gmp. Please see the special mini-gmp-status page.
Issues with GMP 6.1.0:
  • An assembly file which is used for Intel Broadwell and Intel Skylake (except crippled Pentiums and Celerons without BMI2) will not work correctly for Windoze. Patch.
  • See also issues for subsequent releases above.
Issues with GMP 6.0.0:
  • [No issues found yet.]
  • See also issues for subsequent releases above.
Issues with GMP 5.1.3:
  • The documentation of mpn_set_str is incorrect and incomplete wrt allocation requirements. Patch.
  • See also issues for subsequent releases above.
Issues with GMP 5.1.2:
  • The functions mpn_sbpi1_div_qr_sec and mpn_sbpi1_div_r_sec compute incorrect results for some operands. With uniformly distributed random operands, the error is very hard to trigger, and for the intended use of these functions, operands can be expected to appear as such random operands from these functions’ perspective. Patch.
  • The internal function mpn_divrem_2 on Itanium clobbers two callee-saves registers. This can lead to miscomputations or crashes in the callers. Patch.
  • See also issues for subsequent releases above.
Issues with GMP 5.1.1:
  • Windows only: A 64-bit build for AMD Bulldozer and Piledriver chips, or a fat 64-bit build running on these chips, will not work correctly. Patch.
  • The function mpz_powm_ui computes garbage if the base argument is over 15000 decimal or the mod argument is at least 7500 decimal digits. No other GMP powm function is affected. Patch.
  • See also issues for subsequent releases above.
Issues with GMP 5.1.0:
  • The mini-gmp.c file, which implements a subset of mpn and mpz, was not properly tested and contained a number of bugs. Please do not use the 5.1.0 version of mini-gmp.c. Note that these bugs do not affect GMP itself.
  • The included top-level Makefile.in has an automake-generated distcheck target which creates a world-writable directory. This target is not used in the GMP release process, but it is a potential security problem affecting users who invoke this make target. This problem (and no other) is corrected in the gmp-5.1.0a.tar.* set of files.
  • See also issues for subsequent releases above.

For patches to older GMP versions, please see the Info on older GMP releases.

Future releases

Please see the GMPng page for information on what we’re working on.

Источник

Читайте также:  Как установить android studio linux
Оцените статью