C++ 任意精度多项式求解

C++ 任意精度多项式求解,c++,gmp,gsl,polynomials,C++,Gmp,Gsl,Polynomials,我们一直在使用GSL来解多项式。然而,我们希望使用任意精度来求解多项式。我查看了GMP和Boost多精度库,但是,我找不到任何浮点系数多项式求解的例程 是否存在任何免费的开源库,用于求解任意精度或非常高精度的多项式(小数点后大于200个位置) 当数据类型更改为任意精度时,是否可以使用GSL多项式解算器例程 使用标准算法之一编写具有任意精度数据类型的多项式解算器更容易吗 如果不清楚,请随时发表评论。如果您知道一些求解多项式方程的算法(在许多教科书中都可以找到),您可以将其改编并编码为GMP 由于G

我们一直在使用GSL来解多项式。然而,我们希望使用任意精度来求解多项式。我查看了GMP和Boost多精度库,但是,我找不到任何浮点系数多项式求解的例程

  • 是否存在任何免费的开源库,用于求解任意精度或非常高精度的多项式(小数点后大于200个位置)

  • 当数据类型更改为任意精度时,是否可以使用GSL多项式解算器例程

  • 使用标准算法之一编写具有任意精度数据类型的多项式解算器更容易吗


  • 如果不清楚,请随时发表评论。

    如果您知道一些求解多项式方程的算法(在许多教科书中都可以找到),您可以将其改编并编码为GMP

    由于GMP有一个外观通常为
    的操作员+
    。。。等,你可以复制和过去一些现有的C代码,然后适应GMP

  • 提供使用多精度求解多项式的库。内部使用

    可以观察到以下情况:

    • 计算可以以整数、有理数和浮点任意精度进行
    • 多项式的系数和各种其他选项通过文件输入。可以对原始代码进行装配,以便直接从自己的程序调用函数
    • 可以以各种格式报告解决方案,如指数、仅真实等
    • 该解算器已经过几个标准多项式测试用例的验证,并进行了检验
    • 解算器在内部使用随机数,该随机数在Linux机器上通过
      /dev/random
      进行种子设定。这会导致在后续运行中解算器速度较慢的问题,因为在未来运行开始之前生成的解算器不够。用标准伪随机发生器代替它可以绕过这个问题
    • 尝试将解算器集成为库。然而,出现了严重的分段错误,难以调试。因此,正在通过调用其可执行文件来使用解算器。注:这只是我的经验,希望能以更好的方式完成
    • 正在开发一个新的C++版本,希望能够解决这些问题。

  • 将GSL多项式解算器分叉以使用GMP数据类型是非常繁琐的。如果编写了解算器,代码将更容易控制和理解(参见第3条)

  • 如中所述,可以使用和多精度库,并且可以使用标准多项式求解技术(例如基于或QR的技术)编写多项式解算器
  • 为使用GMP和MPFR提供包装,这可能非常方便