LINUX.ORG.RU

GMP 5.0.0 (GNU Multiple Precision Arithmetic Library)

 , ,


0

0

GMP — библиотека для вычислений с числами заданной точности.

В новой версии:

  • Тщательно пересмотрено умножение, внесено множество улучшений.
  • Также ревизии подверглось деление и mod, для некоторых случаев улучшены временные оценки.
  • Улучшена временная оценка для функции mpz_powm.
  • Для внутренней поддержки умножения реализован алгоритм Малдера, что привело к уменьшению нижних границ для значений входных параметров некоторых функций.
  • Вычисление обратных значений, и 1/N и 1/N mod B^n, было улучшено.
  • Для функции mpz_perfect_power_p использован ассимптотически более быстрый алгоритм.
  • Функция mpz_remove значительно ускорена.
  • Специфичные для Intel Atom и Via Nano оптимизации.
  • Множество новых mpz_* и mpn_* функций.
  • Поддержка Windows64.
  • Улучшен подбор оптимального алгоритма для входных данных. Количество границ увеличено, и сами они откорректированы.
  • Значительно улучшен набор тестов.

Полный список изменений

>>> Подробности

★★★

Проверено: no-dashi ()
Последнее исправление: no-dashi (всего исправлений: 1)

>Для внутренней поддержки умножения реализован алгоритм Малдера, что привело к уменьшению нижних границ для значений входных параметров некоторых функций.

I WANT TO BELIEVE this function has valid parameters.

anonymous
()
Ответ на: комментарий от aiqu6Ait

>maxima вполне себе нормальна

4.2 Не берёт простейших интегралов и диффуры решает ооочень избирательно. =(

theos ★★★
()

> GMP — библиотека для вычислений с числами заданной точности.

А вот для нефиксированной точности есть крутая библиотека? Чтобы можно было итерационно повышать точность вычисления какой-нибудь сложной формулы.

zzo
()
Ответ на: комментарий от MageasteR

> Во-первых, у меня всего одна *

Бугога! :D

Jayrome ★★★★★
()
Ответ на: комментарий от zzo

А вот для нефиксированной точности есть крутая библиотека? Чтобы можно было итерационно повышать точность вычисления какой-нибудь сложной формулы.

Так уже ж сказали выше. Нефиксированная точность в принципе не возможна на компе. А вообще если уж охота (чисто из спортивного интереса) вычислять с большой точности поставь заранее точность представление числа допустим 100 знаков. И молись чтобы памяти хватило.

ogronom
()
Ответ на: комментарий от yet_another_anon

>Чеего??? А ну-ка обосновывай с примерами.

А Wolfram Alfa их прекрасно брал. Только вот я не записывал, и так хлама хватает. Если вспомню - напишу.

theos ★★★
()
Ответ на: комментарий от ogronom

Выше сказали пук. Как и ты.

Зачем нужна нефиксированная точность? Чтобы пользователь мог указать, с какой точностью ему нужен ответ, а не сколько памяти он готов потратить. Например, нужно посчитать exp(sin(2)) с точностью 10^-6, и библиотека сама сообразит, что для хранения '2' достаточно одного слова, для хранения sin(2) надо сколько-то дофига знаков, именно столько, чтобы получить в экспоненте точность 10^-6.

Ну или может не сразу сказать, а иметь операцию, например, «повысить точность», не требующую полный перерасчет, а просто прибавляющую сколько-то еще членов ряда, который использовался для приближения.

zzo
()
Ответ на: комментарий от yet_another_anon

Можешь не запускать, я подскажу:

Universal error handler called recursively (:ERROR
                                                                        NIL
                                                                        CONDITIONS::CLCS-UNIVERSAL-ERROR-HANDLER
                                                                        ""
                                                                        "Couldn't protect")
Universal error handler called recursively (:ERROR NIL
                                            CONDITIONS::CLCS-UNIVERSAL-ERROR-HANDLER
                                            "" "Couldn't protect")
Maxima encountered a Lisp error:
 Error in CONDITIONS::CLCS-UNIVERSAL-ERROR-HANDLER [or a callee]: Caught fatal error [memory may be damaged]
theos ★★★
()
Ответ на: комментарий от theos

Кажется, это у вас называется 4.2?

[code] (%i1) integrate(1/(sin(x)+cos(x)), x); 2 sin(x) 3/2 ---------- - 2 - 2 cos(x) + 1 log(---------------------) 2 sin(x) 3/2 ---------- + 2 - 2 cos(x) + 1 (%o1) - -------------------------- sqrt(2) [/code]

yet_another_anon
()
Ответ на: комментарий от yet_another_anon

Блин, криво вставился. Не умею работать с этим вашим лоркодом. В общем, суть в том, что она его берёт и выводит в принципе в интеллигибельной форме (в отличие, кстати, от того же вольфрама).

yet_another_anon
()
Ответ на: комментарий от yet_another_anon

Хмм... странно. У меня падает. Но вообще я просто от балды этот пример написал, что именно у меня не бралось я врядли вспомню. Но для чистоты эксперименты, вы всё-таки полность и нормально ответ выпишите, который максима даёт.

theos ★★★
()
Ответ на: комментарий от yet_another_anon

А с лоркодом работать просто - надо выставить его, а не TeX в качестве маркапа.

theos ★★★
()
Ответ на: комментарий от theos
(%i1) integrate(1/(sin(x)+cos(x)), x);
                                2 sin(x)     3/2
                               ---------- - 2    - 2
                               cos(x) + 1
                           log(---------------------)
                                2 sin(x)     3/2
                               ---------- + 2    - 2
                               cos(x) + 1
(%o1)                    - --------------------------
                                    sqrt(2)
yet_another_anon
()
Ответ на: комментарий от theos

Maxima 5.19.2 http://maxima.sourceforge.net
Using Lisp CLISP 2.48 (2009-07-28)
Distributed under the GNU Public License. See the file COPYING.
Dedicated to the memory of William Schelter.
The function bug_report() provides bug reporting information.
(%i1) fullratsimp(integrate(1/(sin(x)+cos(x)), x));
      sin(x) + (- sqrt(2) - 1) cos(x) - sqrt(2) - 1
log(---------------------------------------------)
      sin(x) + (sqrt(2) - 1) cos(x) + sqrt(2) - 1
(%o1) - --------------------------------------------------
sqrt(2)

anonymous
()

> Для внутренней поддержки умножения реализован алгоритм Малдера

Не Малдера, а Малдерса.

"...algorithm to compute a short product faster than the full product in the case of Karatsuba's multiplication"

sjinks ★★★
()
Ответ на: комментарий от nnz

> А она, между прочим, в Maple используется (емнип). Один из ключевых компонентов.

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

Открытый - не значит бесплатный.

namezys ★★★★
()
Ответ на: комментарий от nnz

> Библиотека реально вкусная. Возможно, в отсутствие других путей ребята из Maplesoft серьезно задумались бы об эффективных методах заработка на открытом софте.

Часто разработать закрытый аналог свободной библиотеки не сложно. Сложнее обратное

namezys ★★★★
()
Ответ на: комментарий от yet_another_anon

> Главное, оптимизации-то это помогает или нет?

Местами очень не слабо помагает

namezys ★★★★
()
Ответ на: комментарий от theos

Ну в общем пока не вспомнишь - не проверить, в самом ли деле оно не берётся. Может быть у тебя какая-нибудь старая версия, или сборка кривая, или какого-нибудь скрипта не зватает... Попробуй на досуге запустить из максимы run_testsuite(); чтобы посмотреть, всё ли работает как надо. На том примере же, который ты привёл - максима работает отлично, притом ответ выдаёт в более удобной форме, чем mathematica по крайней мере, не знаю за maple.

yet_another_anon
()
Ответ на: комментарий от theos

> 4.2 Не берёт простейших интегралов

Если нужно брать интегралы, то пользуй Axiom. Только в ней реализован полный алгоритм Риша (трансцендентный и рациональный случаи), позволяющий разрешить проблему взятия интеграла в терминаж заданного набора функций до конца. Если интеграл не может взять аксиома, то его не может взять никто.

annoynimous ★★★★★
()
Ответ на: комментарий от vertexua

Нужно было реализовать RSA. Производительность я не замерял, но библиотека удобная.

Zenom ★★★
()
Ответ на: комментарий от namezys

>Открытый - не значит бесплатный.

GPL — это не просто открытость, а свобода. Значит, создание полноценных бесплатных аналогов особых трудностей не составит.

nnz ★★★★
()
Ответ на: комментарий от namezys

>Часто разработать закрытый аналог свободной библиотеки не сложно.

Да, гораздо сложнее потом доказать, что это не чужой GPL-код :)

nnz ★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.