Мы использовали GSL для решения полиномов. Однако мы хотим использовать произвольную точность для решения полиномов. Я заглянул в GMP и Boost Multi-Precision Library, однако, я не смог найти никакой процедуры для полиномиального решения с коэффициентами с плавающей запятой.
Существует ли какая-либо библиотека, которая является бесплатной и с открытым исходным кодом, для решения полиномов с произвольной точностью или очень высокой точностью (> 200 позиций после десятичной дроби)?
Можно ли использовать процедуру полиномиального решателя GSL с изменением типа данных на произвольную точность GMP?
Было бы легко написать полиномиальный решатель, используя один из стандартных алгоритмов, с типами данных произвольной точности GMP?
Пожалуйста, не стесняйтесь комментировать, если это не ясно.
Если вы знаете какой-либо алгоритм для решения полиномиального уравнения (и вы найдете его во многих учебниках), вы можете адаптировать и кодировать его для использования GMP.
Так как GMP имеет Интерфейс класса C ++ с обычным взглядом operator +
… и т. д., вы можете скопировать и вставить некоторый существующий код на C, а затем адаптировать его к GMP.
MPSolve предоставляет библиотеку для решения полиномов с использованием мульти-точности. Внутренне он использует GMP.
Можно наблюдать следующее:
/dev/random
на машине Linux. Это вызывает проблему из-за того, что решатель работает медленно при последующих запусках, так как энтропия Сгенерировано недостаточно перед началом будущих запусков. Это можно обойти, заменив его стандартными псевдослучайными генераторами.Boost C ++ библиотеки обеспечить обертки для использования GMP и MPFR, которые могут быть очень удобны в использовании.