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.

>>> Исходный код GMP

>>> Краткий список изменений

©  Linux.org.ru