Π Π°Π·Π½ΠΎΠ΅

Π‘ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° gmp c: The GNU MP Bignum Library

Π‘ΠΎΠ΄Π΅Ρ€ΠΆΠ°Π½ΠΈΠ΅

Установка ΠΈ использованиС GMP Π² C++

Π‘ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° GMP являСтся Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ извСстной бСсплатной Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΎΠΉ для Π΄Π»ΠΈΠ½Π½ΠΎΠΉ Π°Ρ€ΠΈΡ„ΠΌΠ΅Ρ‚ΠΈΠΊΠΈ, написанной Π½Π° языкС C с использованиСм ассСмблСра. Π­Ρ‚Π° Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° разрабатываСтся с 1991 Π³ΠΎΠ΄Π°. Из этой Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ появился Π΄Ρ€ΡƒΠ³ΠΎΠΉ бСсплатный нСзависимый ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ с Π΄Π»ΠΈΠ½Π½ΠΎΠΉ Π°Ρ€ΠΈΡ„ΠΌΠ΅Ρ‚ΠΈΠΊΠΎΠΉ, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ Π±Ρ‹Π»Π° сохранСна ΡΠΎΠ²ΠΌΠ΅ΡΡ‚ΠΈΠΌΠΎΡΡ‚ΡŒ с GMP — MIPR.
Mathematica, Maple ΠΈ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ систСмы ΡΠΈΠΌΠ²ΠΎΠ»ΡŒΠ½Ρ‹Ρ… вычислСний ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ GMP Π² качСствС Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ для Ρ€Π°Π±ΠΎΡ‚Ρ‹ с Π΄Π»ΠΈΠ½Π½ΠΎΠΉ Π°Ρ€ΠΈΡ„ΠΌΠ΅Ρ‚ΠΈΠΊΠΎΠΉ.

Под линуксом ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ с установкой ΠΏΠΎΠ΄ΠΎΠ±Π½Ρ‹Ρ… Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊ ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ Π½Π΅ Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ‚. Π—Π΄Π΅ΡΡŒ срабатываСт Π»ΠΈΠ±ΠΎ ΠΏΡƒΡ‚ΡŒ установки Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ ΠΈΠ· рСпозитария, Π»ΠΈΠ±ΠΎ Π±ΠΎΠ»Π΅Π΅ стандартный — скачиваниС исходных ΠΊΠΎΠ΄ΠΎΠ² ΠΈ ΠΈΡ… компиляция ΠΏΡ€ΠΈ ΠΏΠΎΠΌΠΎΡ‰ΠΈ β€œ./configure && make && make install”.

Установка GMP для MINGW (Windows)

Если Π²Ρ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚Π΅ standalone Π²Π΅Ρ€ΡΠΈΡŽ MinGW(Ρ‚.Π΅. Ρƒ вас Π΅ΡΡ‚ΡŒ ΠΏΠ°ΠΏΠΊΠ° C:\MinGW), Ρ‚ΠΎ скорСй всСго Π²Ρ‹ Π΅Ρ‘ ставили ΠΏΡ€ΠΈ ΠΏΠΎΠΌΠΎΡ‰ΠΈ ΡƒΡ‚ΠΈΠ»ΠΈΡ‚Ρ‹ mingw-get, которая находится Π² β€œC:\MinGW\bin”. ΠŸΡ€ΠΈ ΠΏΠΎΠΌΠΎΡ‰ΠΈ mingw-get ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ с установкой GMP Π²ΠΎΠΎΠ±Ρ‰Π΅ Π½Π΅ Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π²ΠΎΠ·Π½ΠΈΠΊΠ°Ρ‚ΡŒ, ΠΈ ставится Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ :

mingw-get install mingw32-gmp
mingw-get install mingw32-gmp-dev

Π’ случаС отсутствия mingw-get, ΠΈΠ»ΠΈ Ссли хочСтся Π²Π΅Ρ€ΡΠΈΡŽ GMP посвСТСС, Ρ‚ΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠΏΡ€ΠΎΠ±ΠΎΠ²Π°Ρ‚ΡŒ ΡΠΎΠ±Ρ€Π°Ρ‚ΡŒ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΡƒ ΠΈΠ· исходных ΠΊΠΎΠ΄ΠΎΠ² ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ систСму msys :

# ΠΏΡ€Π΅Π΄ΠΏΠΎΠ»ΠΎΠΆΠΈΠΌ Ρ‡Ρ‚ΠΎ Π² ΠΏΠ°ΠΏΠΊΠ΅ C:\code\gmp502c\ Π±ΡƒΠ΄Π΅Ρ‚ Π½Π°Ρ…ΠΎΠ΄ΠΈΡ‚ΡŒΡΡ скомпилированная вСрсия
./configure --prefix=/c/code/gmp502c/ --enable-cxx
make
make install

Π€Π»Π°Π³ –enable-cxx ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΡ‚ ΡΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΡƒΡŽ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΡƒ libgmpxx.a для Π‘++ (Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΡ‡Π½Ρ‹ΠΉ Ρ„Π°ΠΉΠ» gmpxx.h)
ПослС компиляции Π² ΠΏΠ°ΠΏΠΊΠ΅ C:\code\gmp502c\ появится Ρ‚Ρ€ΠΈ Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΠΈ lib(Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ для Π»ΠΈΠ½ΠΊΠΎΠ²ΠΊΠΈ), include(Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΡ‡Π½Ρ‹Π΅ Ρ„Π°ΠΉΠ»Ρ‹), share(Π΄ΠΎΠΊΠΈ для man).
*Под MinGW ΠΌΠ½Π΅ ΡƒΠ΄Π°Π»ΠΎΡΡŒ ΡΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ GMP ΠΈΠ· исходников, ΠΎΠ΄Π½Π°ΠΊΠΎ Π½Π΅ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΠ»ΠΎΡΡŒ ΡΠ»ΠΈΠ½ΠΊΠΎΠ²Π°Ρ‚ΡŒ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΡƒ с ΠΌΠΎΠΈΠΌ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΎΠΌ. Π― ΠΏΡ€ΠΎΠ±ΠΎΠ²Π°Π» ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ MIPR, Π½ΠΎ для Π½Π΅Π΅ Π½Π΅ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ Ρ„Π»Π°Π³ –prefix ΠΏΡ€ΠΈ сборкС ΠΈ приходится ΡΠΎΠ±ΠΈΡ€Π°Ρ‚ΡŒ всС Ρ‡Ρ‚ΠΎ ΡΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€ΠΎΠ²Π°Π»ΠΎΡΡŒ Π² ΠΏΠ°ΠΏΠΊΠ΅ MIPR Π±ΡƒΠΊΠ²Π°Π»ΡŒΠ½ΠΎ β€œΡ€ΡƒΠΊΠ°ΠΌΠΈβ€. Π’ ΠΊΠΎΠ½Π΅Ρ‡Π½ΠΎΠΌ ΠΈΡ‚ΠΎΠ³Π΅ я остановился Π½Π° Π±ΠΎΠ»Π΅Π΅ простом Π²Π°Ρ€ΠΈΠ°Π½Ρ‚Π΅ ΠΈ Ρ€Π΅ΡˆΠΈΠ» ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ, поставлСнныС mingw-get.

C++ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ GMP, ΠΈΡ… Π»ΠΈΠ½ΠΊΠΎΠ²ΠΊΠ° ΠΈ использованиС

GMP состоит ΠΈΠ· ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΡ… Ρ„Π°ΠΉΠ»ΠΎΠ²

Π—Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΡ‡Π½Ρ‹Π΅:
 * gmp.h (для C)
 * gmpxx.h (для C++)
Π‘ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ:
 * libgmp.a (Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° для C)
 * libgmpxx.a (Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° для C++)

ΠŸΡ€ΠΈ Ρ€Π°Π±ΠΎΡ‚Π΅ с GMP Π½Π°Π΄ΠΎ Π±ΡƒΠ΄Π΅Ρ‚ ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ Π»ΠΈΠ½ΠΊΠΎΠ²Π°Ρ‚ΡŒ Ρ„Π°ΠΉΠ»Ρ‹ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊ Π²Ρ‹ΡˆΠ΅ ΠΈ ΡƒΠΊΠ°Π·Ρ‹Π²Π°Ρ‚ΡŒ ΠΈΡ… Π² настройках ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°, ΠΈΠ½Π°Ρ‡Π΅ Π½Π΅ ΠΈΠ·Π±Π΅ΠΆΠ°Ρ‚ΡŒ ошибок компиляции. Π”ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ, Ссли Π²Ρ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚Π΅ Π²Π΅Ρ€ΡΠΈΡŽ ΠΈΠ· исходников, Π½Π°Π΄ΠΎ Π±ΡƒΠ΄Π΅Ρ‚ ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ ΠΏΠ°ΠΏΠΊΡƒ для поиска Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊ ΠΈ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΡ‡Π½Ρ‹Ρ… Ρ„Π°ΠΉΠ»ΠΎΠ²(Π² ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ это C:\code\gmp502\lib C:\code\gmp502\include)
Π”Π°Π»ΡŒΡˆΠ΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ, Ρ‡Ρ‚ΠΎ скомпилированная GMP Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ для ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅Π³ΠΎ исходника :

#include <iostream>
#include <gmpxx.h>
using std::cout;
int main ()
{
    mpz_class a, b, c;
    a = 1234;
    b = "-567000000000000000000000008";
    c = a+b;
    cout << "sum is " << c << "\n";
    cout << "absolute value is " << abs(c) << "\n";
    return 0;
}

Если Π²Ρ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚Π΅ Π²Π΅Ρ€ΡΠΈΡŽ GMP ΠΈΠ· mingw-get :

g++ main.cpp -lgmpxx -lgmp

И Ссли Π²Π΅Ρ€ΡΠΈΡŽ ΠΈΠ· исходных ΠΊΠΎΠ΄ΠΎΠ² :

g++ main.cpp -I/c/code/gmp502/include -L/c/code/gmp502/lib -lgmpxx -lgmp

На Mac OS X ΠΏΡ€ΠΈ использованиС gmp ΠΈΠ· brew :

g++-4.7 test_gmp.cpp -I/usr/local/include -L/usr/local/lib -lgmpxx -lgmp

ДокумСнтация ΠΏΠΎ GMP Π΅ΡΡ‚ΡŒ Π½Π° сайтС, ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎ ΠΏΠΎ C++ ΠΎΠ±Π΅Ρ€Ρ‚ΠΊΠ΅ здСсь.

НапослСдок Ρ…ΠΎΡ‚Π΅Π»ΠΎΡΡŒ Π±Ρ‹ ΡΠΊΠ°Π·Π°Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ ΠΏΠΎΠΊΠ° я Π½Π΅ сразу нашСл простой ΠΏΡƒΡ‚ΡŒ установки GMP для MinGW ΠΏΡ€ΠΈ ΠΏΠΎΠΌΠΎΡ‰ΠΈ mingw-get, я Π±Ρ‹Π» Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ ΡƒΠ΄ΠΈΠ²Π»Π΅Π½ Ρ‚Π΅ΠΌ, Ρ‡Ρ‚ΠΎ Π½Π΅ сущСствуСт Π½ΠΎΡ€ΠΌΠ°Π»ΡŒΠ½Ρ‹Ρ… вСрсий Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ GMP(ΠΈΠ»ΠΈ MIPR), которая сразу Π±Ρ‹ ΡΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€ΠΎΠ²Π°Π»Π°ΡΡŒ ΠΈ Π·Π°Ρ€Π°Π±ΠΎΡ‚Π°Π»Π°.

Ну ΠΈ касаСмо Ρ‚Π°ΠΊΠΎΠ³ΠΎ вопроса ΠΏΠΎΡ‡Π΅ΠΌΡƒ ΠΆΠ΅ всС-Ρ‚Π°ΠΊΠΈ GMP, Π° Π½Π΅ Python ΠΈΠ»ΠΈ Π΄Ρ€ΡƒΠ³ΠΎΠΉ язык, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ ΡƒΠΆΠ΅ встроСна длинная Π°Ρ€ΠΈΡ„ΠΌΠ΅Ρ‚ΠΈΠΊΠ°, я Π΄ΡƒΠΌΠ°ΡŽ Π²Ρ‹ ΡƒΠΆΠ΅ догадались, GMP для C++ Π½Π° порядок быстрСС Python ΠΈ схоТих систСм.

GNU Multiple Precision Arithmetic Library

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 — ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΠΎ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅ΠΌΡ‹Π΅ ΠΈ Ρ€Π°Π·Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Π΅ΠΌΡ‹Π΅ высокоуровнСвыС арифмСтичСскиС Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ для ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ Π½Π°Π΄ числами с ΠΏΠ»Π°Π²Π°ΡŽΡ‰Π΅ΠΉ Ρ‚ΠΎΡ‡ΠΊΠΎΠΉ с высокоточным ΠΎΠΊΡ€ΡƒΠ³Π»Π΅Π½ΠΈΠ΅ΠΌ.

На страницС ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° ΠΌΠΎΠΆΠ½ΠΎ ΠΎΠ·Π½Π°ΠΊΠΎΠΌΠΈΡ‚ΡŒΡΡ с Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΠ΅ΠΉ, Π΄Ρ€ΡƒΠ³ΠΎΠΉ Π²Π°ΠΆΠ½ΠΎΠΉ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠ΅ΠΉ для Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ² ΠΈ Π·Π°Π±Π°Π²Π½ΠΎΠΉ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΎΠΉ для расчёта ΠΌΠΈΠ»Π»ΠΈΠΎΠ½Π° Π·Π½Π°ΠΊΠΎΠ² числа ΠΏΠΈ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ GMP.

Π‘Π°ΠΉΡ‚: GMP — The GNU Multiple Precision Arithmetic Library

ΠžΡΡ‚Π°Π²ΡŒΡ‚Π΅ свой ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΉ!

Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΉ

< ΠŸΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰Π°Ρ Β  Π‘Π»Π΅Π΄ΡƒΡŽΡ‰Π°Ρ >

GMP 5.0.2Β β€” The GNU Multiple Precision Arithmetic Library β€” GNU’s Not Unix β€” Новости

Бпустя 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

>>> ΠšΡ€Π°Ρ‚ΠΊΠΈΠΉ список ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ

>>> Π‘Ρ‚Ρ€Π°Π½ΠΈΡ†Π° ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° GMP

Как ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ GCC ΠΏΠΎ частям с GMP, MPFR, MPC, ELF, Π±Π΅Π· ΠΎΠ±Ρ‰ΠΈΡ… Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊ?

Π›Π΅Π³ΠΊΠΈΠΉ ΠŸΡƒΡ‚ΡŒ

Ссли Π²Ρ‹ Ρ‚ΠΈΠΏΠΈΡ‡Π½Ρ‹ΠΉ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊ, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ простой способ, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ инструкции Π²http://gcc.gnu.org/wiki/InstallingGCC ΠΈΠ»ΠΈ диспСтчСр систСмных ΠΏΠ°ΠΊΠ΅Ρ‚ΠΎΠ², Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€:

apt  install gcc  # for Debian, Ubuntu, etc.
yum  install gcc  # for RedHat, CentOS, etc.
brew install gcc  # for Mac OS X

Π’Ρ€ΡƒΠ΄Π½Ρ‹ΠΉ ΠŸΡƒΡ‚ΡŒ

GCC Π³ΠΎΠ²ΠΎΡ€ΠΈΡ‚, Ρ‡Ρ‚ΠΎ ΠΎΡ‚Π²Π΅Ρ‚ здСсь «Ρ‚Ρ€ΡƒΠ΄Π½Ρ‹ΠΉ ΠΏΡƒΡ‚ΡŒ», ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ ΠΎΠ½ строит всС ΠΏΠΎ частям ΠΈ Π½Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ ΠΎΠ±Ρ‰ΠΈΠ΅ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ.

инфраструктура GCC

ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ GCC инфраструктура:

ftp://gcc.gnu.org/pub/gcc/infrastructure/

помСститС Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ Π²ΠΎ Π²Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹ΠΉ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ (Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ любой ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅).

/opt/downloads

создайтС инфраструктуру Π²ΠΎ Π²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΌ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π΅, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ отличаСтся ΠΎΡ‚ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π° Π·Π°Π³Ρ€ΡƒΠ·ΠΎΠΊ ΠΈΠ»ΠΈ Π΅Π³ΠΎ ΠΏΠΎΠ΄ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ΠΎΠ²:

/tmp/gcc

настройтС инфраструктуру с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ статичСских Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ:

./configure --disable-shared --enable-static --prefix=/tmp/gcc

Ρ„Π»Π°Π³ —disable-shared ΠΌΠΎΠΆΠ΅Ρ‚ ΡΡ‚ΠΎΠΈΡ‚ΡŒ Π±ΠΎΠ»Π΅Π΅ ΠΏΡ€ΠΈΡΡ‚Π°Π»ΡŒΠ½ΠΎΠ³ΠΎ взгляда Π² зависимости ΠΎΡ‚ Π²Π°ΡˆΠΈΡ… потрСбностСй. Π― ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽ —disable-shared, ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ я я создаю Ρ‚ΠΎΠ»ΡŒΠΊΠΎ статичСский ΠΊΠΎΠ΄, ΠΈ я Ρ…ΠΎΡ‡Ρƒ ΡƒΠ±Π΅Π΄ΠΈΡ‚ΡŒΡΡ, Ρ‡Ρ‚ΠΎ я Π½Π΅ создаю ΠΎΠ±Ρ‰ΠΈΠΉ ΠΊΠΎΠ΄. МнС Π½ΡƒΠΆΠ½ΠΎ Π»Π΅Π³ΠΊΠΎ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Ρ‰Π°Ρ‚ΡŒ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚ΠΈΡ€ΡƒΡŽΡ‰ΠΈΠΉ GCC Π²ΠΎΠΊΡ€ΡƒΠ³ ΠΌΠΎΠΈΡ… дисков, поэтому я Ρ…ΠΎΡ‡Ρƒ вСсь статичСский ΠΊΠΎΠ΄, ΠΈ я Π½Π΅ Ρ…ΠΎΡ‡Ρƒ Π½ΠΈΠΊΠ°ΠΊΠΎΠ³ΠΎ ΠΎΠ±Ρ‰Π΅Π³ΠΎ ΠΊΠΎΠ΄Π°. Если Π²Ρ‹ ΠΏΡ€Π΅Π΄ΠΏΠΎΡ‡ΠΈΡ‚Π°Π΅Ρ‚Π΅ ΠΎΠ±Ρ‰ΠΈΠΉ ΠΊΠΎΠ΄, опуститС Ρ„Π»Π°Π³ —disable-shared.

вСрсии

ΠΏΡ€ΠΈ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠΈ любой ΠΈΠ· ΠΊΠΎΠΌΠ°Π½Π΄ Π² этом ΠΎΡ‚Π²Π΅Ρ‚Π΅ ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ ΠΎΠ±Π½ΠΎΠ²ΠΈΡ‚Π΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Ρ‚Π΅ΠΊΡƒΡ‰ΠΈΠΉ Π½ΠΎΠΌΠ΅Ρ€ вСрсии GCC, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ соотвСтствуСт вашим потрСбностям. ΠšΠΎΠΌΠ°Π½Π΄Ρ‹ этого ΠΎΡ‚Π²Π΅Ρ‚Π° для GCC 4.6.2.

ΠΎΠ±Ρ€Π°Ρ‚ΠΈΡ‚Π΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, Ρ‡Ρ‚ΠΎ Π² Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΠΈ GCC говорится: «Ρ…отя любая достаточно новая вСрсия Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹Ρ… инструмСнтов ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚, трСбования ΠΊ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ΅, ΠΊΠ°ΠΊ ΠΏΡ€Π°Π²ΠΈΠ»ΠΎ, Π±ΠΎΠ»Π΅Π΅ строгиС. Π‘ΠΎΠ»Π΅Π΅ Π½ΠΎΠ²Ρ‹Π΅ вСрсии ΠΌΠΎΠ³ΡƒΡ‚ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ Π² Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… случаях,Π½ΠΎ бСзопаснСС ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Ρ‚ΠΎΡ‡Π½Ρ‹Π΅ вСрсии, Π·Π°Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Π΅.»

GMP

GMP-это арифмСтичСская Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° мноТСствСнной точности GNU.

wget ftp://gcc.gnu.org/pub/gcc/infrastructure/gmp-4.3.2.tar.bz2
bunzip2 gmp-4.3.2.tar.bz2
tar xvf gmp-4.3.2.tar
cd gmp-4.3.2
./configure --disable-shared --enable-static --prefix=/tmp/gcc
make && make check && make install

MPFR

MPFR-это Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° округлСния с ΠΏΠ»Π°Π²Π°ΡŽΡ‰Π΅ΠΉ запятой с мноТСствСнной Ρ‚ΠΎΡ‡Π½ΠΎΡΡ‚ΡŒΡŽ GNU. Он зависит ΠΎΡ‚ GMP.

wget ftp://gcc.gnu.org/pub/gcc/infrastructure/mpfr-2.4.2.tar.bz2
bunzip2 mpfr-2.4.2.tar.bz2
tar xvf mpfr-2.4.2.tar
cd mpfr-2.4.2
./configure --disable-shared --enable-static --prefix=/tmp/gcc --with-gmp=/tmp/gcc
make && make check && make install

MPC

MPC-это Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° с мноТСствСнной Ρ‚ΠΎΡ‡Π½ΠΎΡΡ‚ΡŒΡŽ GNU. Π­Ρ‚ΠΎ зависит ΠΎΡ‚ GMP ΠΈ MPFR.

wget ftp://gcc.gnu.org/pub/gcc/infrastructure/mpc-0.8.1.tar.gz
tar zxvf mpc-0.8.1.tar.gz
cd mpc-0.8.1
./configure --disable-shared --enable-static --prefix=/tmp/gcc --with-gmp=/tmp/gcc --with-mpfr=/tmp/gcc
make && make check && make install

ΡΠ»ΡŒΡ„

ELF ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚ исполняСмый ΠΈ связываСмый Ρ„ΠΎΡ€ΠΌΠ°Ρ‚. Π­Ρ‚Π° Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° прСдоставляСт Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Π½ΠΎ-нСзависимый Ρ€Π°Π·ΠΌΠ΅Ρ€ ΠΈ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΡƒ endian.

wget http://www.mr511.de/software/libelf-0.8.13.tar.gz
tar zxvf libelf-0.8.13.tar.gz
cd libelf-0.8.13
./configure --disable-shared --enable-static --prefix=/tmp/gcc
make && make check && make install

GCC

GCC-это коллСкция компиляторов GNU. Π­Ρ‚ΠΎ зависит ΠΎΡ‚ GMP, MPFR, MPC ΠΈ ELF.

wget http://www.netgull.com/gcc/releases/gcc-4.6.2/gcc-4.6.2.tar.gz
tar zxvf gcc-4.6.2.tar.gz

ΠΏΠΎΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ gcc Π² Ρ†Π°Ρ€Π°ΠΏΠΈΠ½Π΅ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³
Ρ‚Π° ΠΆΠ΅ Ρ‚ΠΎΡ‡ΠΊΠ° монтирования. (Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ Π΅Π³ΠΎ Π² /tmp Π²Ρ‹Π·ΠΎΠ²Π΅Ρ‚ пСрСкрСстныС ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹ компиляции хоста)

mkdir -p /opt/downloads/gcc-4.6.2-scratch
cd /opt/downloads/gcc-4.6.2-scratch

ΠΊΠΎΠΌΠ°Π½Π΄Π° configure ΠΈ Π΅Π΅ Ρ„Π»Π°Π³ΠΈ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π±Ρ‹Ρ‚ΡŒ всС Π² ΠΎΠ΄Π½ΠΎΠΉ ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ строкС (это сообщСниС ΠΏΠΎΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ ΠΈΡ… Π½Π° ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹Ρ… строках Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΈΠ·-Π·Π° ΡˆΠΈΡ€ΠΈΠ½Ρ‹ Π²Π΅Π±-страницы).

ΠŸΡ€ΠΈΠΌΠ΅Ρ‡Π°Π½ΠΈΠ΅: ΠΌΡ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌ ΠΏΠΎΠ»Π½Ρ‹ΠΉ ΠΏΡƒΡ‚ΡŒ для настройки ΠΈ Π½Π΅ устанавливаСм ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ срСды ΠΏΡƒΡ‚ΠΈ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ. ΠœΡ‹ Ρ€Π΅ΡˆΠΈΠ»ΠΈ ΠΎΡ‚ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ Bootstrap ΠΈ ΠΎΡ‚ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ ΠΎΠ±Ρ‰ΠΈΠ΅ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ, ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ ΠΌΡ‹ Π½Π΅ Ρ…ΠΎΡ‚ΠΈΠΌ ΠΈΡ… (Ρ‚ΠΈΠΏΠΈΡ‡Π½Ρ‹Π΅ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΠΈ ΠΌΠΎΠ³ΡƒΡ‚ ΠΈ), ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΠΎΡ‚ΠΎΠΊΠΈ posix ΠΈ Ρ„Π»Π°Π³ΠΈ ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ, ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ ΠΌΡ‹ Ρ…ΠΎΡ‚ΠΈΠΌ ΠΈΡ… (Ρ‚ΠΈΠΏΠΈΡ‡Π½Ρ‹Π΅ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΠΈ ΠΌΠΎΠ³ΡƒΡ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ ΠΏΠΎΡ‚ΠΎΠΊΠΈ ΠΈΠ»ΠΈ ΠΏΡ€ΠΎΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ Ρ„Π»Π°Π³ΠΈ ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ). YMMV ΠΈ Ρ‡ΠΈΡ‚Π°ΠΉΡ‚Π΅ ΠΎ Ρ„Π»Π°Π³Π°Ρ… здСсь

/opt/downloads/gcc-4.6.2/configure
  --disable-shared
  --disable-bootstrap
  --disable-libstdcxx-pch
  --enable-languages=all
  --enable-libgomp
  --enable-lto
  --enable-threads=posix
  --enable-tls
  --with-gmp=/tmp/gcc
  --with-mpfr=/tmp/gcc
  --with-mpc=/tmp/gcc
  --with-libelf=/tmp/gcc
  --with-fpmath=sse
make && make install

эта страница ΠΎΡ‚Π»ΠΈΡ‡Π½ΠΎ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ΠΈΡ‚ для ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ ΠΎΠ± установкС GCC, ΠΊΠ°ΠΊ Π΅Π΅ ΠΏΠΎΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ, Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Π΅ Ρ„Π»Π°Π³ΠΈ ΠΈ ΠΌΠ½ΠΎΠ³ΠΎΠ΅ Π΄Ρ€ΡƒΠ³ΠΎΠ΅:

http://www.acsu.buffalo.edu / ~charngda/cc_build.html

обновлСния

Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ ppl ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ для оптимизация памяти: см. bugseng.com/products/ppl/Download (Бпасибо ΠŸΠ°Π²Π»Ρƒ Π² коммСнтариях)

Ρ‚Ρ‹ моТСшь Π±Π΅ΠΆΠ°Ρ‚ΡŒ ./ contrib / download_prerequisites ΠΈΠ· исходного ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π° gcc. (Благодаря N7P Π½Π° reddit)

Gmp

Бпустя 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

>>> ΠšΡ€Π°Ρ‚ΠΊΠΈΠΉ список ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ

>>> Π‘Ρ‚Ρ€Π°Π½ΠΈΡ†Π° ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° GMP

plibsysΒ β€” кросс-платформСнная систСмная Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° Π½Π° C β€” Open Source β€” Новости

НСдавно ΠΊΠΎ ΠΌΠ½Π΅ ΠΎΠ±Ρ€Π°Ρ‚ΠΈΠ»ΠΈΡΡŒ с вопросом, Π½Π΅ Ρ…ΠΎΡ‡Ρƒ Π»ΠΈ я Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ Π½ΠΎΠ²ΠΎΡΡ‚ΡŒ ΠΎΠ± ΠΎΠ΄Π½ΠΎΠΉ ΠΈΠ· Ρ€Π°Π·Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Π΅ΠΌΡ‹Ρ… Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊ (plibsys). Π’ ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏΠ΅, я Π½Π΅ ΠΏΡ€ΠΎΡ‚ΠΈΠ², поэтому эксклюзивно для LOR.

Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ plibsys?

plibsysΒ β€” это кросс-платформСнная систСмная Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ°, написанная Π½Π° чистом C. Основной ΡƒΠΏΠΎΡ€ Π±Ρ‹Π» ΠΈΠ·Π½Π°Ρ‡Π°Π»ΡŒΠ½ΠΎ сдСлан Π½Π° ΠΏΠΎΡ€Ρ‚ΠΈΡ€ΡƒΠ΅ΠΌΠΎΡΡ‚ΡŒ ΠΈ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΡƒ ΡˆΠΈΡ€ΠΎΠΊΠΎΠ³ΠΎ спСктра компиляторов. Для достиТСния этих Ρ†Π΅Π»Π΅ΠΉ Ρƒ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ ΠΎΡ‚ΡΡƒΡ‚ΡΡ‚Π²ΡƒΡŽΡ‚ (нСбольшим ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ΠΌ являСтся SCO OpenServer 5 Π²Π²ΠΈΠ΄Ρƒ отсутствия Π½Π° Π½Π΅ΠΉ ΠΏΠΎΡ‚ΠΎΠΊΠΎΠ²) ΠΊΠ°ΠΊΠΈΠ΅-Π»ΠΈΠ±ΠΎ зависимости — ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ρ‚Π΅ Π²Ρ‹Π·ΠΎΠ²Ρ‹, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ доступны Π² Ρ†Π΅Π»Π΅Π²ΠΎΠΉ ОБ. Π’Π°ΠΊΠΆΠ΅ Π½ΠΈΠΊΠ°ΠΊΠΎΠ³ΠΎ ассСмблСра ΠΈ использования ΠΏΡ€ΠΎΡ‡ΠΈΡ… Π½Π΅Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Ρ… возмоТностСй. Для сборки Π½ΡƒΠΆΠ΅Π½ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ρ€Π°Π±ΠΎΡ‡ΠΈΠΉ компилятор ΠΈ CMake.

Π˜Π·Π½Π°Ρ‡Π°Π»ΡŒΠ½ΠΎ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° писалась для запуска ΠΏΠΎΡ‚ΠΎΠΊΠΎΠ² ΠΈ Ρ€Π°Π±ΠΎΡ‚Ρ‹ с сокСтами, Π½ΠΎ постСпСнно Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π» Ρ€Π°ΡΡˆΠΈΡ€ΡΠ»ΡΡ ΠΏΠΎ ΠΌΠ΅Ρ€Π΅ нСобходимости. На Π΄Π°Π½Π½Ρ‹ΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ‚ Π΅ΡΡ‚ΡŒ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»:

  • ΠŸΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠΎ-нСзависимыС Ρ‚ΠΈΠΏΡ‹ Π΄Π°Π½Π½Ρ‹Ρ…
  • ΠŸΠΎΡ‚ΠΎΠΊΠΈ ΠΈ срСдства синхронизации: ΠΌΡŒΡŽΡ‚Π΅ΠΊΡΡ‹, условныС ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅, Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²ΠΊΠΈ чтСния-записи, спинлоки, Π°Ρ‚ΠΎΠΌΠ°Ρ€Π½Ρ‹Π΅ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ
  • ΠœΠ΅ΠΆΠΏΡ€ΠΎΡ†Π΅ΡΡΠ½ΠΎΠ΅ взаимодСйствиС: сСмафоры, раздСляСмая ΠΏΠ°ΠΌΡΡ‚ΡŒ, ΠΊΠΎΠ»ΡŒΡ†Π΅Π²ΠΎΠΉ Π±ΡƒΡ„Π΅Ρ€
  • Π‘ΠΎΠΊΠ΅Ρ‚Ρ‹ (UDP, TCP) с ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠΎΠΉ IPv4 ΠΈ IPv6
  • Π₯эш-Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ: MD5, SHA-1, SHA-2, SHA-3, GOST (R 34.11-94)
  • Π‘ΠΈΠ½Π°Ρ€Π½Ρ‹Π΅ Π΄Π΅Ρ€Π΅Π²ΡŒΡ: нСсбалансированноС, красно-Ρ‡Π΅Ρ€Π½ΠΎΠ΅, АВЛ
  • Π—Π°Π³Ρ€ΡƒΠ·ΠΊΠ° раздСляСмых Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊ
  • Π Π°Π±ΠΎΡ‚Π° с ΠΏΠ°ΠΌΡΡ‚ΡŒΡŽ: mmap, установка собствСнного Π°Π»Π»ΠΎΠΊΠ°Ρ‚ΠΎΡ€Π°
  • Π—Π°ΠΌΠ΅Ρ€ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ исполнСния (ΠΏΠΎ возмоТности — Π² высоком Ρ€Π°Π·Ρ€Π΅ΡˆΠ΅Π½ΠΈΠΈ)
  • Базовая Ρ€Π°Π±ΠΎΡ‚Π° с Ρ„Π°ΠΉΠ»Π°ΠΌΠΈ ΠΈ дирСкториями
  • ΠŸΠ°Ρ€ΡΠ΅Ρ€ Ρ„Π°ΠΉΠ»ΠΎΠ² INI
  • ΠœΠ°ΠΊΡ€ΠΎΡΡ‹ для опрСдСлСния Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Ρ‹ ЦПУ, ОБ ΠΈ компилятора
  • Π Π°Π·Π»ΠΈΡ‡Π½Ρ‹Π΅ Π²ΡΠΏΠΎΠΌΠΎΠ³Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ структуры Π΄Π°Π½Π½Ρ‹Ρ… Ρ‚ΠΈΠΏΠ° связанного списка, Ρ…ΡΡˆ-Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹, ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° строк

На всС Π΅ΡΡ‚ΡŒ докумСнтация.

ΠŸΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅ΠΌΡ‹Π΅ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡ‹ ΠΈ компиляторы

ΠΠ±ΡΠΎΠ»ΡŽΡ‚Π½ΠΎ всС ΠΌΠΎΠ΄ΡƒΠ»ΠΈ ΠΏΠΎΠΊΡ€Ρ‹Ρ‚Ρ‹ Unit-тСстами. Π•ΡΡ‚ΡŒ интСграция с CI (Travis, AppVeyor), Π³Π΄Π΅ прогоняСтся большоС число Ρ€Π°Π·Π½ΠΎΠΎΠ±Ρ€Π°Π·Π½Ρ‹Ρ… ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΉ. Π’Π°ΠΊΠΆΠ΅ для ΡƒΠ»ΡƒΡ‡ΡˆΠ΅Π½ΠΈΡ качСства ΠΊΠΎΠ΄Π° ΠΈ сниТСния числа ошибок ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ сСрвис статичСского Π°Π½Π°Π»ΠΈΠ·Π° ΠΊΠΎΠ΄Π° Coverity. Для ΠΎΡ†Π΅Π½ΠΊΠΈ покрытия тСстами ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ Codecov.

На Π΄Π°Π½Π½Ρ‹ΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ‚ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°ΡŽΡ‚ΡΡ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡ‹:

  • GNU/Linux
  • macOS
  • Windows, Cygwin, MSYS
  • FreeBSD, NetBSD, OpenBSD, DragonFlyBSD
  • Solaris
  • AIX
  • HP-UX
  • Tru64
  • OpenVMS
  • OS/2
  • IRIX
  • QNX Neutrino, BlackBerry 10
  • UnixWare 7
  • SCO OpenServer 5
  • Haiku
  • Syllable
  • BeOS

Π’Π°ΠΊΠΆΠ΅ Ρ€Π°Π±ΠΎΡ‚ΠΎΡΠΏΠΎΡΠΎΠ±Π½ΠΎΡΡ‚ΡŒ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ ΠΏΡ€ΠΎΠ²Π΅Ρ€Π΅Π½Π° Π½Π° ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΡ… компиляторах ΠΈ Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Π°Ρ…:

  • MSVC (x86, x64) 2003 ΠΈ Π²Ρ‹ΡˆΠ΅
  • MinGW (x86, x64)
  • Open Watcom (x86)
  • Borland (x86)
  • GCC (x86, x64, PPC32be, PPC64be/le, IA-64/32, IA-64, Alpha, HPPA2.0-32, MIPS32, AArch42, SPARCv9)
  • Clang (x86, x64, PPC32be)
  • Intel (x86, x64)
  • QCC (x86, AArch42)
  • Oracle Solaris Studio (x86, x64, SPARCv9)
  • MIPSpro (MIPS32)
  • XL C (PPC64le)
  • DEC C (Alpha)
  • PGI (x86, x64)
  • Cray (x64)

ΠžΡΠΎΠ±Π΅Π½Π½ΠΎΡΡ‚ΠΈ Ρ€Π°Π±ΠΎΡ‚Ρ‹ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ, сборки ΠΈ тСстирования Π½Π° Ρ€Π°Π·Π½Ρ‹Ρ… ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ°Ρ… с Ρ€Π°Π·Π½Ρ‹ΠΌΠΈ компиляторами ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½ΠΎ рассмотрСны Π² Wiki.

Π§Ρ‚ΠΎ дальшС?

Π‘ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° ΠΏΠΎ-Ρ‚ΠΈΡ…ΠΎΠ½ΡŒΠΊΡƒ ΠΏΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠ°Π΅Ρ‚ Ρ€Π°Π·Π²ΠΈΠ²Π°Ρ‚ΡŒΡΡ, хотя, ΠΊ соТалСнию, свободного Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ Π½Π΅ Ρ‚Π°ΠΊ ΠΌΠ½ΠΎΠ³ΠΎ. НапримСр, Π½Π΅Π΄Π°Π²Π½ΠΎ Π±Ρ‹Π»Π° Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Π° ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° для систСм Cray.

ΠŸΠ»Π°Π½ΠΈΡ€ΡƒΡŽ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ Ρ€ΠΎΠ΄Π½ΠΎΠΉ ΠΏΠ°ΠΊΠ΅Ρ‚ для Debian. Π’ ΠΎΠ±Ρ‰Π΅ΠΌ-Ρ‚ΠΎ, ΠΎΠ½ Π³ΠΎΡ‚ΠΎΠ², Π½Π°Π΄ΠΎ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΏΡ€ΠΎΡ‚Π΅ΡΡ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ. Π’ связи с этим, Ссли ΠΊΡ‚ΠΎ-Ρ‚ΠΎ смоТСт Π²Ρ‹ΡΡ‚ΡƒΠΏΠΈΡ‚ΡŒ Π² качСствС поручитСля (ΠΎΠ½ ΠΆΠ΅ sponsor Π² Ρ‚Π΅Ρ€ΠΌΠΈΠ½ΠΎΠ»ΠΎΠ³ΠΈΠΈ Debian) для ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ ΠΈ Π·Π°Π»ΠΈΠ²ΠΊΠΈ ΠΏΠ°ΠΊΠ΅Ρ‚Π°Β β€” Π±ΡƒΠ΄Ρƒ Ρ€Π°Π΄.

Если Ρƒ ΠΊΠΎΠ³ΠΎ-Ρ‚ΠΎ Π΅ΡΡ‚ΡŒ доступ ΠΊ ΠΊΠ°ΠΊΠΈΠΌ-Ρ‚ΠΎ машинам ΠΈ компиляторам, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… Π½Π΅Ρ‚Ρƒ Π² спискС, ΠΈ Π΅ΡΡ‚ΡŒ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ ΠΎΡ€Π³Π°Π½ΠΈΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΡƒΠ΄Π°Π»Π΅Π½Π½Ρ‹ΠΉ доступ для портирования — Π±ΡƒΠ΄Ρƒ Ρ€Π°Π΄. Π’ Π΄Π°Π½Π½Ρ‹ΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ‚ Π±Ρ‹Π»ΠΎ Π±Ρ‹ интСрСсно ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ ΠΏΠΎΠ΄ HP-UX с компилятором HP C/aC++. Или Π½Π° ΠΌΠ°ΡˆΠΈΠ½Π°Ρ… уровня BlueGene с компилятором IBM XL. Или Π½Π° AmigaOS.

ПоТСлания, ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΈ (конструктивныС ΠΈ Π½Π΅ ΠΎΡ‡Π΅Π½ΡŒ) ΠΈ ΠΏΠΎΡ‚ΠΎΠΊ сознания (Π² ΠΌΠ΅Ρ€Ρƒ) ΠΏΠΎ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ΅ ΠΏΡ€ΠΈΠ²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‚ΡΡ πŸ™‚

>>> ΠŸΠΎΠ΄Ρ€ΠΎΠ±Π½ΠΎΡΡ‚ΠΈ

Π‘ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° GNU MP Bignum

ΠšΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Ρ‹ GMP ΠΎΠ±ΡΠ»ΡƒΠΆΠΈΠ²Π°ΡŽΡ‚ΡΡ ΠΎΠ΄Π½ΠΈΠΌ Ρ‡Π΅Π»ΠΎΠ²Π΅ΠΊΠΎΠΌ Π½Π° Π΄ΠΎΠ±Ρ€ΠΎΠ²ΠΎΠ»ΡŒΠ½ΠΎΠΉ основС. Π’
ΠΏΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠ°ΡŽΡ‰ΠΈΠΉΡΡ ΡˆΡ‚ΠΎΡ€ΠΌ Π°ΠΏΠΏΠ°Ρ€Π°Ρ‚Π½Ρ‹Ρ… ошибок Intel с
Meltdown,
ΠŸΡ€ΠΈΠ·Ρ€Π°ΠΊ
ΠŸΡ€Π΅Π΄Π·Π½Π°ΠΌΠ΅Π½ΠΎΠ²Π°Π½ΠΈΠ΅,
ΠœΠ”Π‘,
Π° Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ послСдняя ошибка jCC ΠΈ
ΠœΠΠ•
бэкдор Π΄Π΅Π»Π°Π΅Ρ‚ сСрвСры GMP Π΄Π°Π»Π΅ΠΊΠΎ Π½Π΅ Ρ‚Π°ΠΊΠΈΠΌΠΈ бСзопасными, ΠΊΠ°ΠΊ Π½Π°ΠΌ Ρ…ΠΎΡ‚Π΅Π»ΠΎΡΡŒ Π±Ρ‹.
Π£ нас Π½Π΅Ρ‚ Π½ΠΈ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡΠ»Π΅Π΄ΠΈΡ‚ΡŒ Π·Π° ошибками, Π½ΠΈ финансовых рСсурсов, Ρ‡Ρ‚ΠΎΠ±Ρ‹
ΠΏΡ€ΠΈΠΎΠ±Ρ€Π΅Ρ‚ΠΈΡ‚Π΅ бСзопасноС (r) сСрвСрноС ΠΎΠ±ΠΎΡ€ΡƒΠ΄ΠΎΠ²Π°Π½ΠΈΠ΅ AMD.

БистСма, которая запускаСт этот Π²Π΅Π±-сСрвСр, Π° Ρ‚Π°ΠΊΠΆΠ΅ ΠΏΠΎΡ‡Ρ‚ΠΎΠ²Ρ‹ΠΉ сСрвСр, список рассылки
сСрвСр, брандмауэр ΠΈ Ρ‚. Π΄. ΠΈΠΌΠ΅Π΅Ρ‚ Intel E5-1650 v2, Π½Π° ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ влияСт Π±ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²ΠΎ
упомянутыС Π²Ρ‹ΡˆΠ΅ ошибки / бэкдоры.Π˜ΠΌΠ΅ΠΉΡ‚Π΅ это Π² Π²ΠΈΠ΄Ρƒ ΠΏΡ€ΠΈ использовании
рСсурсы здСсь.

ΠŸΠΎΠΆΠ°Π»ΡƒΠΉΡΡ‚Π°, ΠΏΠΎΠΉΠΌΠΈΡ‚Π΅, Ρ‡Ρ‚ΠΎ ΠΌΡ‹ ΡΠ΅Ρ€ΡŒΠ΅Π·Π½ΠΎ относимся ΠΊ бСзопасности, Π½ΠΎ эффСктивно
ΡΠ²Π»ΡΡŽΡ‚ΡΡ
DoS’ed by
нСбрСТная / злонамСрСнная инТСнСрия.

Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ GMP?

GMP — это бСсплатная Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° для Π°Ρ€ΠΈΡ„ΠΌΠ΅Ρ‚ΠΈΠΊΠΈ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ»ΡŒΠ½ΠΎΠΉ точности, Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‰Π°Ρ Π½Π°
Ρ†Π΅Π»Ρ‹Π΅ числа со Π·Π½Π°ΠΊΠΎΠΌ, Ρ€Π°Ρ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½Ρ‹Π΅ числа ΠΈ числа с ΠΏΠ»Π°Π²Π°ΡŽΡ‰Π΅ΠΉ запятой. Π—Π΄Π΅ΡΡŒ Π½Π΅Ρ‚
практичСский ΠΏΡ€Π΅Π΄Π΅Π» точности, ΠΊΡ€ΠΎΠΌΠ΅ Ρ‚Π΅Ρ…, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΏΠΎΠ΄Ρ€Π°Π·ΡƒΠΌΠ΅Π²Π°ΡŽΡ‚ΡΡ доступными
ΠΏΠ°ΠΌΡΡ‚ΡŒ Π² машинС, Π½Π° ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ GMP. GMP ΠΈΠΌΠ΅Π΅Ρ‚ Π±ΠΎΠ³Π°Ρ‚Ρ‹ΠΉ Π½Π°Π±ΠΎΡ€ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ, Π°
Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ ΠΈΠΌΠ΅ΡŽΡ‚ ΠΎΠ±Ρ‹Ρ‡Π½Ρ‹ΠΉ интСрфСйс.

ΠžΡΠ½ΠΎΠ²Π½Ρ‹ΠΌΠΈ Ρ†Π΅Π»Π΅Π²Ρ‹ΠΌΠΈ прилоТСниями GMP ΡΠ²Π»ΡΡŽΡ‚ΡΡ прилоТСния для ΠΊΡ€ΠΈΠΏΡ‚ΠΎΠ³Ρ€Π°Ρ„ΠΈΠΈ ΠΈ
исслСдования, прилоТСния бСзопасности Π² Π˜Π½Ρ‚Π΅Ρ€Π½Π΅Ρ‚Π΅, систСмы Π°Π»Π³Π΅Π±Ρ€Ρ‹, Π²Ρ‹Ρ‡ΠΈΡΠ»ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅
исслСдования Π°Π»Π³Π΅Π±Ρ€Ρ‹ ΠΈ Π΄Ρ€.

GMP Ρ‚Ρ‰Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π°Π½, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π±Ρ‹Ρ‚ΡŒ максимально быстрым ΠΊΠ°ΠΊ для Π½Π΅Π±ΠΎΠ»ΡŒΡˆΠΈΡ… ΠΎΠΏΠ΅Ρ€Π°Π½Π΄ΠΎΠ²
ΠΈ для ΠΎΠ³Ρ€ΠΎΠΌΠ½Ρ‹Ρ… ΠΎΠΏΠ΅Ρ€Π°Π½Π΄ΠΎΠ². Π‘ΠΊΠΎΡ€ΠΎΡΡ‚ΡŒ достигаСтся Π·Π° счСт использования ΠΏΠΎΠ»Π½Ρ‹Ρ… слов Π² качСствС основного
арифмСтичСский Ρ‚ΠΈΠΏ, с использованиСм быстрых Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠΎΠ², с высоко ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΌ ΠΊΠΎΠ΄ΠΎΠΌ сборки
для Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ распространСнных Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½ΠΈΡ… Ρ†ΠΈΠΊΠ»ΠΎΠ² для ΠΌΠ½ΠΎΠ³ΠΈΡ… процСссоров, ΠΈ Π·Π° счСт ΠΎΠ±Ρ‰Π΅Π³ΠΎ Π°ΠΊΡ†Π΅Π½Ρ‚Π° Π½Π°
ΡΠΊΠΎΡ€ΠΎΡΡ‚ΡŒ.

ΠŸΠ΅Ρ€Π²Ρ‹ΠΉ выпуск GMP Π±Ρ‹Π» Π²Ρ‹ΠΏΡƒΡ‰Π΅Π½ Π² 1991 Π³ΠΎΠ΄Ρƒ. Он постоянно развиваСтся ΠΈ
поддСрТиваСтся, выпуск Π½ΠΎΠ²ΠΎΠΉ вСрсии происходит ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π½ΠΎ Ρ€Π°Π· Π² Π³ΠΎΠ΄.

Начиная с вСрсии 6, GMP распространяСтся ΠΏΠΎ Π΄Π²ΠΎΠΉΠ½ΠΎΠΉ Π»ΠΈΡ†Π΅Π½Π·ΠΈΠΈ,
GNU LGPL v3
ΠΈ GNU GPL v2.
Π­Ρ‚ΠΈ Π»ΠΈΡ†Π΅Π½Π·ΠΈΠΈ Π΄Π΅Π»Π°ΡŽΡ‚ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΡƒ бСсплатной для использования, ΠΎΠ±ΠΌΠ΅Π½Π° ΠΈ ΡƒΠ»ΡƒΡ‡ΡˆΠ΅Π½ΠΈΡ, Π° Ρ‚Π°ΠΊΠΆΠ΅ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‚
ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‚ΡŒ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚. Π›ΠΈΡ†Π΅Π½Π·ΠΈΠΈ GNU Π½Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π΄Π°ΡŽΡ‚ свободы, Π½ΠΎ ΠΈ ΡƒΡΡ‚Π°Π½Π°Π²Π»ΠΈΠ²Π°ΡŽΡ‚ Ρ‚Π²Π΅Ρ€Π΄ΡƒΡŽ
ограничСния Π½Π° использованиС ΠΏΠ»Π°Ρ‚Π½Ρ‹Ρ… ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ.

GMP являСтся Ρ‡Π°ΡΡ‚ΡŒΡŽ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° GNU. Для получСния Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠΉ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ ΠΎ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π΅ GNU,
посСтитС ΠΎΡ„ΠΈΡ†ΠΈΠ°Π»ΡŒΠ½Ρ‹ΠΉ Π²Π΅Π±-сайт GNU.

ΠžΡΠ½ΠΎΠ²Π½Ρ‹ΠΌΠΈ Ρ†Π΅Π»Π΅Π²Ρ‹ΠΌΠΈ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ°ΠΌΠΈ

GMP ΡΠ²Π»ΡΡŽΡ‚ΡΡ систСмы Ρ‚ΠΈΠΏΠ° Unix, Ρ‚Π°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ GNU / Linux,
Solaris, HP-UX, Mac OS X / Darwin, BSD, AIX ΠΈ Π΄Ρ€. Π’Π°ΠΊΠΆΠ΅ извСстно, Ρ‡Ρ‚ΠΎ ΠΎΠ½ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ Π½Π°
Windows ΠΊΠ°ΠΊ Π² 32-Π±ΠΈΡ‚Π½ΠΎΠΌ, Ρ‚Π°ΠΊ ΠΈ Π² 64-Π±ΠΈΡ‚Π½ΠΎΠΌ Ρ€Π΅ΠΆΠΈΠΌΠ΅.

GMP прСдоставлСн Π²Π°ΠΌ ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΉ, ΡƒΠΊΠ°Π·Π°Π½Π½ΠΎΠΉ Π²
руководство.

GMP Ρ‚Ρ‰Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ разрабатываСтся ΠΈ поддСрТиваСтся ΠΊΠ°ΠΊ тСхничСски, Ρ‚Π°ΠΊ ΠΈ ΡŽΡ€ΠΈΠ΄ΠΈΡ‡Π΅ΡΠΊΠΈ. ΠœΡ‹
ΠΊΠΎΠ½Π΅Ρ‡Π½ΠΎ, Π²Π½ΠΈΠΌΠ°Ρ‚Π΅Π»ΡŒΠ½ΠΎ провСряйтС ΠΈ тСстируйтС прСдоставлСнный ΠΊΠΎΠ΄, Π½ΠΎ Π½Π΅ ΠΌΠ΅Π½Π΅Π΅ Π²Π°ΠΆΠ½ΠΎ
ΠΌΡ‹ Π³Π°Ρ€Π°Π½Ρ‚ΠΈΡ€ΡƒΠ΅ΠΌ, Ρ‡Ρ‚ΠΎ ΠΈΠΌΠ΅Π΅ΠΌ Π·Π°ΠΊΠΎΠ½Π½ΠΎΠ΅ ΠΏΡ€Π°Π²ΠΎ Ρ€Π°ΡΠΏΡ€ΠΎΡΡ‚Ρ€Π°Π½ΡΡ‚ΡŒ поТСртвования, Ρ‚ΠΎ Π΅ΡΡ‚ΡŒ
ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΠΈ ΠΌΠΎΠ³ΡƒΡ‚ бСзопасно ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ GMP.Для этого ΠΌΡ‹ попросим участников ΠΏΠΎΠ΄ΠΏΠΈΡΠ°Ρ‚ΡŒ
Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Ρ‹, Π² ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… ΠΎΠ½ΠΈ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‚ Π½Π°ΠΌ Ρ€Π°ΡΠΏΡ€ΠΎΡΡ‚Ρ€Π°Π½ΡΡ‚ΡŒ ΠΈΡ… Ρ€Π°Π±ΠΎΡ‚Ρƒ.


ΠšΠ°Ρ‚Π΅Π³ΠΎΡ€ΠΈΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ GMP

Π’ GMP Π΅ΡΡ‚ΡŒ нСсколько ΠΊΠ°Ρ‚Π΅Π³ΠΎΡ€ΠΈΠΉ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ:

  1. ЦСлочислСнныС арифмСтичСскиС Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ высокого уровня со Π·Π½Π°ΠΊΠΎΠΌ ( mpz ). Π˜Ρ… ΠΎΠΊΠΎΠ»ΠΎ 150
    арифмСтичСскиС ΠΈ логичСскиС Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Π² этой ΠΊΠ°Ρ‚Π΅Π³ΠΎΡ€ΠΈΠΈ.
  2. Π€ΡƒΠ½ΠΊΡ†ΠΈΠΈ Ρ€Π°Ρ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΠΉ Π°Ρ€ΠΈΡ„ΠΌΠ΅Ρ‚ΠΈΠΊΠΈ высокого уровня ( mpq ). Π­Ρ‚Π° катСгория состоит ΠΈΠ·
    ΠΎΠΊΠΎΠ»ΠΎ 35 Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ, Π½ΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ всС Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ mpz
    Ρ‚Π°ΠΊΠΆΠ΅, примСняя ΠΈΡ… ΠΊ Ρ‡ΠΈΡΠ»ΠΈΡ‚Π΅Π»ΡŽ ΠΈ Π·Π½Π°ΠΌΠ΅Π½Π°Ρ‚Π΅Π»ΡŽ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΠΎ.
  3. АрифмСтичСскиС Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ высокого уровня с ΠΏΠ»Π°Π²Π°ΡŽΡ‰Π΅ΠΉ запятой ( mpf ). Π­Ρ‚ΠΎ GMP
    катСгория Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ для использования, Ссли Ρ‚ΠΈΠΏ C `double ‘Π½Π΅ Π΄Π°Π΅Ρ‚ достаточно
    Ρ‚ΠΎΡ‡Π½ΠΎΡΡ‚ΡŒ для прилоТСния. ВсСго Π² этом
    катСгория. Π’ Π½ΠΎΠ²Ρ‹Ρ… ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°Ρ… слСдуСт ΡΠ΅Ρ€ΡŒΠ΅Π·Π½ΠΎ ΠΏΠΎΠ΄ΡƒΠΌΠ°Ρ‚ΡŒ ΠΎΠ± использовании Π³ΠΎΡ€Π°Π·Π΄ΠΎ большСго
    полная Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΠΉ GMP mpfr
    вмСсто mpf.
  4. Π˜Π½Ρ‚Π΅Ρ€Ρ„Π΅ΠΉΡ Π½Π° основС классов C ++ для всСго Π²Ρ‹ΡˆΠ΅ΠΏΠ΅Ρ€Π΅Ρ‡ΠΈΡΠ»Π΅Π½Π½ΠΎΠ³ΠΎ. (Π€ΡƒΠ½ΠΊΡ†ΠΈΠΈ ΠΈ Ρ‚ΠΈΠΏΡ‹ C
    ΠΊΠΎΠ½Π΅Ρ‡Π½ΠΎ, ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΈ прямо ΠΈΠ· C ++.)
  5. НизкоуровнСвыС ΠΏΠΎΠ»ΠΎΠΆΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ-Ρ†Π΅Π»Ρ‹Π΅, Ρ‚Ρ€ΡƒΠ΄Π½Ρ‹Π΅ Π² использовании, с ΠΎΡ‡Π΅Π½ΡŒ Π½ΠΈΠ·ΠΊΠΈΠΌΠΈ Π½Π°ΠΊΠ»Π°Π΄Π½Ρ‹ΠΌΠΈ расходами
    Π½Π°ΠΉΠ΄Π΅Π½ΠΎ Π² ΠΊΠ°Ρ‚Π΅Π³ΠΎΡ€ΠΈΠΈ mpn . Π£ΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ ΠΏΠ°ΠΌΡΡ‚ΡŒΡŽ Π½Π΅ выполняСтся; звонящий
    Π΄ΠΎΠ»ΠΆΠ΅Π½ ΠΎΠ±Π΅ΡΠΏΠ΅Ρ‡ΠΈΡ‚ΡŒ достаточно мСста для Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ΠΎΠ². Набор
    Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Π½Π΅ всСгда рСгулярны, ΠΊΠ°ΠΊ ΠΈ Π²Ρ‹Π·Ρ‹Π²Π°ΡŽΡ‰ΠΈΠΉ интСрфСйс. Π­Ρ‚ΠΈ
    Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°ΡŽΡ‚ Π²Ρ…ΠΎΠ΄Π½Ρ‹Π΅ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Ρ‹ Π² Π²ΠΈΠ΄Π΅ ΠΏΠ°Ρ€, состоящих ΠΈΠ·
    ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŒ Π½Π° Π½Π°ΠΈΠΌΠ΅Π½Π΅Π΅ Π·Π½Π°Ρ‡Π°Ρ‰Π΅Π΅ слово ΠΈ цСлочислСнный Ρ€Π°Π·ΠΌΠ΅Ρ€, ΠΏΠΎΠΊΠ°Π·Ρ‹Π²Π°ΡŽΡ‰ΠΈΠΉ, ΠΊΠ°ΠΊ
    Π² этом Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Π΅ ΠΌΠ½ΠΎΠ³ΠΎ конСчностСй (= слов).Π€ΡƒΠ½ΠΊΡ†ΠΈΠΈ Π²
    Π΄Ρ€ΡƒΠ³ΠΈΠ΅ ΠΊΠ°Ρ‚Π΅Π³ΠΎΡ€ΠΈΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ mpn ΠΏΠΎΡ‡Ρ‚ΠΈ для всСх своих вычислСний. Из этих
    ΠΏΡƒΠ±Π»ΠΈΡ‡Π½Ρ‹Ρ… Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ ΠΎΠΊΠΎΠ»ΠΎ 60.

Π—Π°Π³Ρ€ΡƒΠ·ΠΈΡ‚Π΅ послСднюю Π²Π΅Ρ€ΡΠΈΡŽ GMP

Π§Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΠΏΡ‹Ρ‚Π°Ρ‚ΡŒΡΡ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ, Ρ‡Ρ‚ΠΎ Π·Π°Π³Ρ€ΡƒΠΆΠ΅Π½Π½Ρ‹ΠΉ Π²Π°ΠΌΠΈ Ρ„Π°ΠΉΠ» Π½Π΅ Π±Ρ‹Π» ΠΏΠΎΠ΄Π΄Π΅Π»Π°Π½
с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ, соотвСтствуСт Π»ΠΈ подпись GnuPG содСрТимому Ρ„Π°ΠΉΠ»Π°.
Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉ свой
ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ΅ обСспСчСниС GnuPG ΠΈΠ»ΠΈ
сСрвСр ΠΊΠ»ΡŽΡ‡Π΅ΠΉ Π½Π°ΠΏΡ€ΡΠΌΡƒΡŽ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ ΠΊΠ»ΡŽΡ‡, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π±Ρ‹Π»
ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ для создания подписи. Начиная с ΠΏΠ΅Ρ€Π΅ΠΏΠ°ΠΊΠΎΠ²ΠΊΠΈ gmp-5.1.0 ΠΊΠ°ΠΊ
gmp-5.1.0a.tar. * ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ ΠΊΠ»ΡŽΡ‡ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ для подписи Ρ€Π΅Π»ΠΈΠ·ΠΎΠ² GMP:


Π˜Π΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ ΠΊΠ»ΡŽΡ‡Π°: 0x28C67298
Π’ΠΈΠΏ ΠΊΠ»ΡŽΡ‡Π°: 2560 Π±ΠΈΡ‚ RSA
ΠžΡ‚ΠΏΠ΅Ρ‡Π°Ρ‚ΠΎΠΊ: 343C 2FF0 FBEE 5EC2 EDBE F399 F359 9FF8 28C6 7298

ВмСсто использования выпуска Π²Ρ‹ Ρ‚Π°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ послСдний ΠΊΠΎΠ΄ ΠΈΠ·
Π Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΈ GMP. Π­Ρ‚ΠΎ ΠΏΠΎΡ‚Ρ€Π΅Π±ΡƒΠ΅Ρ‚ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ…
большС Ρ€Π°Π±ΠΎΡ‚Ρ‹ ΠΏΠΎ ΡΡ€Π°Π²Π½Π΅Π½ΠΈΡŽ с использованиСм Ρ€Π΅Π»ΠΈΠ·Π°.


Π‘ΠΎΠΎΠ±Ρ‰Π΅Π½ΠΈΠ΅ ΠΎΠ± ΠΎΡˆΠΈΠ±ΠΊΠ°Ρ… Π² GMP

Π‘Π½Π°Ρ‡Π°Π»Π° просмотритС
руководство ΠΎ Ρ‚ΠΎΠΌ, ΠΊΠ°ΠΊ ΡΠΎΠΎΠ±Ρ‰Π°Ρ‚ΡŒ ΠΎΠ± ΠΎΡˆΠΈΠ±ΠΊΠ°Ρ….Π’
ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½Ρ‹ΠΉ адрСс для сообщСний ΠΎΠ± ΠΎΡˆΠΈΠ±ΠΊΠ°Ρ… — gmp-bugs Π½Π° gmplib.org.

Π‘ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²ΠΎ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ с GMP Π² наши Π΄Π½ΠΈ связано с ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ°ΠΌΠΈ Π½Π΅ с GMP, Π° с
компилятор, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹ΠΉ для компиляции исходников GMP. Π­Ρ‚ΠΎ ΡΠ΅Ρ€ΡŒΠ΅Π·Π½Π°Ρ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ° для
ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ GMP, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ Π½Π΅ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎΠ΅ вычислСниС — Π½Π΅ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎΠ΅ вычислСниС,
Π²Ρ‹Π·Π²Π°Π½ΠΎ Π»ΠΈ это ошибкой GMP ΠΈΠ»ΠΈ ошибкой компилятора. ΠœΡ‹ борСмся с этим, создавая GMP
testuite ΠΈΠΌΠ΅Π΅Ρ‚ большоС ΠΏΠΎΠΊΡ€Ρ‹Ρ‚ΠΈΠ΅, поэтому ΠΎΠ½ Π΄ΠΎΠ»ΠΆΠ΅Π½ ΡƒΠ»Π°Π²Π»ΠΈΠ²Π°Ρ‚ΡŒ всС Π²ΠΎΠ·ΠΌΠΎΠΆΠ½Ρ‹Π΅
Π½Π΅ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½Π°Ρ компиляция.


Бписки рассылки GMP

ΠžΠ±Ρ€Π°Ρ‚ΠΈΡ‚Π΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, Ρ‡Ρ‚ΠΎ ΠΌΡ‹ выполняСм Ρ„ΠΈΠ»ΡŒΡ‚Ρ€Π°Ρ†ΠΈΡŽ спама ΠΈ вирусов для этих списков.Бписки
Π±Ρ‹Π»ΠΈ Π½Π° 100% свободны ΠΎΡ‚ спама Π² Ρ‚Π΅Ρ‡Π΅Π½ΠΈΠ΅ послСдних Π»Π΅Ρ‚.

Π’Ρ‹ Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΏΠΎΠ΄ΠΏΠΈΡΠ°Ρ‚ΡŒΡΡ Π½Π° адрСс AOL Π½Π° ΠΊΠ°ΠΊΠΎΠΉ-Π»ΠΈΠ±ΠΎ список рассылки GMP,
ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ AOL Π±Π»ΠΎΠΊΠΈΡ€ΡƒΠ΅Ρ‚ наш ΠΏΠΎΡ‡Ρ‚ΠΎΠ²Ρ‹ΠΉ сСрвСр Π΄ΠΎ Ρ‚Π΅Ρ… ΠΏΠΎΡ€, ΠΏΠΎΠΊΠ° ΠΌΡ‹ Π½Π΅ зарСгистрируСм ΠΈΡ… ΠΊΠ°ΠΊ «ΠΌΠ°ΡΡΠΎΠ²ΡƒΡŽ
mailer «, Ρ‡Π΅Π³ΠΎ ΠΌΡ‹ Π½ΠΈΠΊΠΎΠ³Π΄Π° Π½Π΅ сдСлаСм.

ΠœΡ‹ Π±Π»ΠΎΠΊΠΈΡ€ΡƒΠ΅ΠΌ всю ΠΏΠΎΡ‡Ρ‚Ρƒ ΠΈΠ· КНР, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ 99%
Π‘ΠΏΠ°ΠΌ, ΠΏΠΎΡΡ‚ΡƒΠΏΠ°ΡŽΡ‰ΠΈΠΉ ΠΌΠΎΠ΄Π΅Ρ€Π°Ρ‚ΠΎΡ€Π°ΠΌ GMP, исходит ΠΈΠ· ΠšΠΈΡ‚Π°ΠΉΡΠΊΠΎΠΉ Народной РСспублики. Если Ρ‚Ρ‹
Π·Π°Ρ‚Ρ€ΠΎΠ½ΡƒΡ‚Ρ‹, Π½ΠΎ ΠΈΠΌΠ΅ΡŽΡ‚ Π·Π°ΠΊΠΎΠ½Π½ΡƒΡŽ ΠΏΡ€ΠΈΡ‡ΠΈΠ½Ρƒ для ΠΎΡ‚ΠΏΡ€Π°Π²ΠΊΠΈ ΠΏΠΎΡ‡Ρ‚Ρ‹ Π² ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ GMP, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Ссли
Π²Ρ‹ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚Π΅ Π² унивСрситСтС ΠΈΠ»ΠΈ ΠΊΠΎΡ€ΠΏΠΎΡ€Π°Ρ†ΠΈΠΈ, ΠΈΠ½Ρ‚Π΅Ρ€Π΅ΡΡƒΡŽΡ‰Π΅ΠΉΡΡ GMP, поТалуйста, сообщитС Π½Π°ΠΌ
Π·Π½Π°Ρ‚ΡŒ; ΠΌΡ‹ ΠΎΡ‚ΠΊΡ€ΠΎΠ΅ΠΌ для вас доступ.


Бтатус Ρ‚Π΅ΠΊΡƒΡ‰Π΅ΠΉ вСрсии

ВСкущая ΡΡ‚Π°Π±ΠΈΠ»ΡŒΠ½Π°Ρ вСрсия — 6.2.0, выпущСнная 17 января 2020 Π³ΠΎΠ΄Π°.

ΠŸΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹ с GMP 6.2.0:
  • MacOS Xcode 11 Π΄ΠΎ 11.3 Π½Π΅ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎ ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€ΡƒΠ΅Ρ‚ GMP, Ρ‡Ρ‚ΠΎ ΠΏΡ€ΠΈΠ²ΠΎΠ΄ΠΈΡ‚ ΠΊ сбоям ΠΈ
    Π½Π΅ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½Ρ‹ΠΉ расчСт.
ΠŸΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹ с GMP 6.1.2:
  • MacOS Xcode 11 Π΄ΠΎ 11.3 Π½Π΅ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎ ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€ΡƒΠ΅Ρ‚ GMP, Ρ‡Ρ‚ΠΎ ΠΏΡ€ΠΈΠ²ΠΎΠ΄ΠΈΡ‚ ΠΊ сбоям ΠΈ
    Π½Π΅ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½Ρ‹ΠΉ расчСт.
ΠŸΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹ с GMP 6.1.1:
  • Π•ΡΡ‚ΡŒ нСсколько ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ с mini-gmp.ΠŸΠΎΠΆΠ°Π»ΡƒΠΉΡΡ‚Π°, посмотритС ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹Π΅
    страница mini-gmp-status.
ΠŸΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹ с GMP 6.1.0:
  • Π€Π°ΠΉΠ» сборки, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ для Intel Broadwell ΠΈ Intel Skylake.
    (ΠΊΡ€ΠΎΠΌΠ΅ ΠΏΠΎΠΊΠ°Π»Π΅Ρ‡Π΅Π½Π½Ρ‹Ρ… Pentiums ΠΈ Celeron Π±Π΅Π· BMI2) Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚
    ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎ для Π’ΠΈΠ½Π΄ΠΎΠ·Π΅.
    ΠŸΠ°Ρ‚Ρ‡.
  • Π‘ΠΌ. Π’Π°ΠΊΠΆΠ΅ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹ для ΠΏΠΎΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΡ… выпусков Π²Ρ‹ΡˆΠ΅.
ΠŸΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹ с GMP 6.0.0:
  • [ΠŸΡ€ΠΎΠ±Π»Π΅ΠΌ ΠΏΠΎΠΊΠ° Π½Π΅Ρ‚]
  • Π‘ΠΌ. Π’Π°ΠΊΠΆΠ΅ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹ для ΠΏΠΎΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΡ… выпусков Π²Ρ‹ΡˆΠ΅.
ΠŸΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹ с GMP 5.1.3:
  • ДокумСнтация mpn_set_str Π½Π΅Π²Π΅Ρ€Π½Π° ΠΈ
    Π½Π΅ΠΏΠΎΠ»Π½Ρ‹Π΅ трСбования ΠΊ Ρ€Π°ΡΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΡŽ.
    ΠŸΠ°Ρ‚Ρ‡.
  • Π‘ΠΌ. Π’Π°ΠΊΠΆΠ΅ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹ для ΠΏΠΎΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΡ… выпусков Π²Ρ‹ΡˆΠ΅.
ΠŸΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹ с GMP 5.1.2:
  • Π€ΡƒΠ½ΠΊΡ†ΠΈΠΈ mpn_sbpi1_div_qr_sec ΠΈ
    mpn_sbpi1_div_r_sec Π²Ρ‹Ρ‡ΠΈΡΠ»ΡΡ‚ΡŒ Π½Π΅Π²Π΅Ρ€Π½Ρ‹Π΅ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Ρ‹ для Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ…
    ΠΎΠΏΠ΅Ρ€Π°Π½Π΄Ρ‹. ΠŸΡ€ΠΈ Ρ€Π°Π²Π½ΠΎΠΌΠ΅Ρ€Π½ΠΎ распрСдСлСнных случайных ΠΎΠΏΠ΅Ρ€Π°Π½Π΄Π°Ρ… ошибка ΠΎΡ‡Π΅Π½ΡŒ
    Ρ‚Ρ€ΡƒΠ΄Π½ΠΎ Π·Π°ΠΏΡƒΡΠΊΠ°Ρ‚ΡŒ, ΠΈ для ΠΏΡ€Π΅Π΄ΠΏΠΎΠ»Π°Π³Π°Π΅ΠΌΠΎΠ³ΠΎ использования этих Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ ΠΎΠΏΠ΅Ρ€Π°Π½Π΄Ρ‹ ΠΌΠΎΠ³ΡƒΡ‚
    оТидаСтся появлСниС Ρ‚Π°ΠΊΠΈΡ… случайных ΠΎΠΏΠ΅Ρ€Π°Π½Π΄ΠΎΠ² ΠΈΠ· этих Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ ‘
    пСрспСктива.ΠŸΠ°Ρ‚Ρ‡.
  • ВнутрСнняя функция mpn_divrem_2 Π½Π° Itanium Π±Π»ΠΎΠΊΠΈΡ€ΡƒΠ΅Ρ‚ Π΄Π²Π° сохранСния Π²Ρ‹Π·Ρ‹Π²Π°Π΅ΠΌΡ‹Ρ… ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ².
    рСгистры. Π­Ρ‚ΠΎ ΠΌΠΎΠΆΠ΅Ρ‚ привСсти ΠΊ Π½Π΅ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½Ρ‹ΠΌ вычислСниям ΠΈΠ»ΠΈ сбоям Π² Π²Ρ‹Π·Ρ‹Π²Π°ΡŽΡ‰ΠΈΡ… Π°Π±ΠΎΠ½Π΅Π½Ρ‚Π°Ρ….
    ΠŸΠ°Ρ‚Ρ‡.
  • Π‘ΠΌ. Π’Π°ΠΊΠΆΠ΅ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹ для ΠΏΠΎΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΡ… выпусков Π²Ρ‹ΡˆΠ΅.
ΠŸΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹ с GMP 5.1.1:
  • Волько для Windows: 64-разрядная сборка для Ρ‡ΠΈΠΏΠΎΠ² AMD Bulldozer ΠΈ Piledriver, ΠΈΠ»ΠΈ
    толстая 64-битная сборка, Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‰Π°Ρ Π½Π° этих Ρ‡ΠΈΠΏΠ°Ρ…, Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ Π½Π΅ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚Π½ΠΎ.
    ΠŸΠ°Ρ‚Ρ‡.
  • Ѐункция mpz_powm_ui вычисляСт мусор, Ссли Π±Π°Π·Π°
    Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ Π±ΠΎΠ»Π΅Π΅ 15000 дСсятичных ΠΈΠ»ΠΈ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ ΠΌΠΎΠ΄Π° Π½Π΅ ΠΌΠ΅Π½Π΅Π΅ 7500 дСсятичных
    Ρ†ΠΈΡ„Ρ€Ρ‹.НикакиС Π΄Ρ€ΡƒΠ³ΠΈΠ΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ GMP powm Π½Π΅ Π·Π°Ρ‚Ρ€ΠΎΠ½ΡƒΡ‚Ρ‹.
    ΠŸΠ°Ρ‚Ρ‡.
  • Π‘ΠΌ. Π’Π°ΠΊΠΆΠ΅ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹ для ΠΏΠΎΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΡ… выпусков Π²Ρ‹ΡˆΠ΅.
ΠŸΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹ с GMP 5.1.0:
  • Π€Π°ΠΉΠ» mini-gmp.c, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Ρ€Π΅Π°Π»ΠΈΠ·ΡƒΠ΅Ρ‚ подмноТСство mpn ΠΈ mpz, Π½Π΅ Π±Ρ‹Π»
    ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎ протСстирован ΠΈ содСрТал ряд ошибок. ΠŸΠΎΠΆΠ°Π»ΡƒΠΉΡΡ‚Π°, Π½Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅
    5.1.0 вСрсия mini-gmp.c. ΠžΠ±Ρ€Π°Ρ‚ΠΈΡ‚Π΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, Ρ‡Ρ‚ΠΎ эти ошибки Π½Π΅ Π²Π»ΠΈΡΡŽΡ‚ Π½Π° GMP.
    сам.
  • Π’ΠΊΠ»ΡŽΡ‡Π΅Π½Π½Ρ‹ΠΉ Makefile.in Π²Π΅Ρ€Ρ…Π½Π΅Π³ΠΎ уровня содСрТит созданный автоматичСски
    distcheck target, которая создаСт доступный для записи ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³.Π­Ρ‚Π° Ρ†Π΅Π»ΡŒ Π½Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ Π² процСссС выпуска GMP, Π½ΠΎ это ΠΏΠΎΡ‚Π΅Π½Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹ΠΉ
    ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ° бСзопасности, Π·Π°Ρ‚Ρ€Π°Π³ΠΈΠ²Π°ΡŽΡ‰Π°Ρ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π²Ρ‹Π·Ρ‹Π²Π°ΡŽΡ‚ эту Ρ†Π΅Π»ΡŒ make. Π­Ρ‚Π°
    ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ° (ΠΈ никакая другая) исправлСна ​​в Π½Π°Π±ΠΎΡ€Π΅ gmp-5.1.0a.tar. *
    Ρ„Π°ΠΉΠ»Ρ‹.
  • Π‘ΠΌ. Π’Π°ΠΊΠΆΠ΅ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹ для ΠΏΠΎΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΡ… выпусков Π²Ρ‹ΡˆΠ΅.

Π˜ΡΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΡ для Π±ΠΎΠ»Π΅Π΅ старых вСрсий GMP см.
Π˜Π½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡ ΠΎ Π±ΠΎΠ»Π΅Π΅ старых выпусках GMP.


Π‘ΡƒΠ΄ΡƒΡ‰ΠΈΠ΅ выпуски

ΠŸΠΎΠΆΠ°Π»ΡƒΠΉΡΡ‚Π°, посСтитС страницу GMPng для получСния ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ ΠΎ
Π½Π°Π΄ Ρ‡Π΅ΠΌ ΠΌΡ‹ Ρ€Π°Π±ΠΎΡ‚Π°Π΅ΠΌ.

.

ΠœΠ°Ρ‚Ρ€ΠΈΡ†Π° Π² Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ΅ GMP (Π½Π° C)

ΠŸΠ΅Ρ€Π΅ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ стСка

  1. Около
  2. ΠŸΡ€ΠΎΠ΄ΡƒΠΊΡ‚Ρ‹

  3. Для ΠΊΠΎΠΌΠ°Π½Π΄
  1. ΠŸΠ΅Ρ€Π΅ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ стСка
    ΠžΠ±Ρ‰Π΅ΡΡ‚Π²Π΅Π½Π½Ρ‹Π΅ вопросы ΠΈ ΠΎΡ‚Π²Π΅Ρ‚Ρ‹

  2. ΠŸΠ΅Ρ€Π΅ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ стСка для ΠΊΠΎΠΌΠ°Π½Π΄
    Π“Π΄Π΅ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΈ ΠΈ Ρ‚Π΅Ρ…Π½ΠΎΠ»ΠΎΠ³ΠΈ дСлятся частными знаниями с ΠΊΠΎΠ»Π»Π΅Π³Π°ΠΌΠΈ

  3. Вакансии
    ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΈ связанныС с Π½ΠΈΠΌ тСхничСскиС возмоТности ΠΊΠ°Ρ€ΡŒΠ΅Ρ€Π½ΠΎΠ³ΠΎ роста

  4. Π’Π°Π»Π°Π½Ρ‚
    НанимайтС тСхничСских спСциалистов ΠΈ создавайтС свой Π±Ρ€Π΅Π½Π΄ работодатСля

  5. Π Π΅ΠΊΠ»Π°ΠΌΠ°
    ΠžΠ±Ρ€Π°Ρ‚ΠΈΡ‚Π΅ΡΡŒ ΠΊ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ°ΠΌ ΠΈ Ρ‚Π΅Ρ…Π½ΠΎΠ»ΠΎΠ³Π°ΠΌ со всСго ΠΌΠΈΡ€Π°

  6. О компании

Загрузка…

.

C ++ — ошибка Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ GMP с ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ΠΎΠΌ%

ΠŸΠ΅Ρ€Π΅ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ стСка

  1. Около
  2. ΠŸΡ€ΠΎΠ΄ΡƒΠΊΡ‚Ρ‹

  3. Для ΠΊΠΎΠΌΠ°Π½Π΄
  1. ΠŸΠ΅Ρ€Π΅ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ стСка
    ΠžΠ±Ρ‰Π΅ΡΡ‚Π²Π΅Π½Π½Ρ‹Π΅ вопросы ΠΈ ΠΎΡ‚Π²Π΅Ρ‚Ρ‹

  2. ΠŸΠ΅Ρ€Π΅ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ стСка для ΠΊΠΎΠΌΠ°Π½Π΄
    Π“Π΄Π΅ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΈ ΠΈ Ρ‚Π΅Ρ…Π½ΠΎΠ»ΠΎΠ³ΠΈ дСлятся частными знаниями с ΠΊΠΎΠ»Π»Π΅Π³Π°ΠΌΠΈ

  3. Вакансии
    ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΈ связанныС с Π½ΠΈΠΌ тСхничСскиС возмоТности ΠΊΠ°Ρ€ΡŒΠ΅Ρ€Π½ΠΎΠ³ΠΎ роста

  4. Π’Π°Π»Π°Π½Ρ‚
    НанимайтС тСхничСских спСциалистов ΠΈ создавайтС свой Π±Ρ€Π΅Π½Π΄ работодатСля

  5. Π Π΅ΠΊΠ»Π°ΠΌΠ°
    ΠžΠ±Ρ€Π°Ρ‚ΠΈΡ‚Π΅ΡΡŒ ΠΊ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ°ΠΌ ΠΈ Ρ‚Π΅Ρ…Π½ΠΎΠ»ΠΎΠ³Π°ΠΌ со всСго ΠΌΠΈΡ€Π°

  6. О компании

Загрузка…

    .

    Π½ΠΎΠ²Π΅ΠΉΡˆΠΈΡ… вопросов ΠΏΠΎ gmp — Stack overflow Π½Π° русском

    ΠŸΠ΅Ρ€Π΅ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ стСка

    1. Около
    2. ΠŸΡ€ΠΎΠ΄ΡƒΠΊΡ‚Ρ‹

    3. Для ΠΊΠΎΠΌΠ°Π½Π΄
    1. ΠŸΠ΅Ρ€Π΅ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ стСка
      ΠžΠ±Ρ‰Π΅ΡΡ‚Π²Π΅Π½Π½Ρ‹Π΅ вопросы ΠΈ ΠΎΡ‚Π²Π΅Ρ‚Ρ‹

    2. ΠŸΠ΅Ρ€Π΅ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ стСка для ΠΊΠΎΠΌΠ°Π½Π΄
      Π“Π΄Π΅ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΈ ΠΈ Ρ‚Π΅Ρ…Π½ΠΎΠ»ΠΎΠ³ΠΈ дСлятся частными знаниями с ΠΊΠΎΠ»Π»Π΅Π³Π°ΠΌΠΈ

    3. Вакансии
      ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΈ связанныС с Π½ΠΈΠΌ тСхничСскиС возмоТности ΠΊΠ°Ρ€ΡŒΠ΅Ρ€Π½ΠΎΠ³ΠΎ роста

    4. Π’Π°Π»Π°Π½Ρ‚
      НанимайтС тСхничСских спСциалистов ΠΈ создавайтС свой Π±Ρ€Π΅Π½Π΄ работодатСля

    5. Π Π΅ΠΊΠ»Π°ΠΌΠ°
      ΠžΠ±Ρ€Π°Ρ‚ΠΈΡ‚Π΅ΡΡŒ ΠΊ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ°ΠΌ ΠΈ Ρ‚Π΅Ρ…Π½ΠΎΠ»ΠΎΠ³Π°ΠΌ со всСго ΠΌΠΈΡ€Π°

    6. О компании

    .

Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΉ

Π’Π°Ρˆ адрСс email Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚ ΠΎΠΏΡƒΠ±Π»ΠΈΠΊΠΎΠ²Π°Π½. ΠžΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ поля ΠΏΠΎΠΌΠ΅Ρ‡Π΅Π½Ρ‹ *