【问题标题】:Exponentiation of polynomials, RR and ZZ in NTL libraryNTL 库中多项式、RR 和 ZZ 的幂运算
【发布时间】:2012-10-04 05:31:28
【问题描述】:

我将 NTL 库用于 RSA 密码分析实现。但是我经常遇到一些关于类型不匹配/不兼容的问题。

例如-

  1. 我需要 n^((h-1.0)/(h*k-1.0)) 的 RR 类型值,其中 n 是 ZZ 类型,h 和 k 是 int。总指数是浮点数或双精度数。我试过 ^ , pow (仅适用于RR base), power (仅适用于长指数)。我最终将 n,h,k 所有类型的 RR 都制作为使用 pow,但这真的是这样做的方法吗?

  2. 如何做 (p(x))^k 其中 p(x) 是一些多项式?我不得不循环使用 mul 函数 k 次。还有如何初始化多项式?似乎它可以从标准输入中获取类似于 python 列表的东西,但我不能在程序中设置它。所以,

    ZZX p;
    p = [1 2 3]
    

    p = ZZX([1 2 3]) 
    

    不起作用。我必须使用SetCoeff 单独设置每个系数。

这些只是我现在记得的两个例子。我遇到了太多的不便。
Iirc,我们甚至不能将 ZZ 和 RR 相乘。

【问题讨论】:

    标签: exponentiation ntl


    【解决方案1】:

    我也搜索了一段时间。

    1. 不抱歉。没有内置的方法可以做到这一点。只有RR^long 是浮点数和整数的混合体。我认为最简单的方法是将所有值转换为RR
    2. 在这里我还没有看到计算多项式幂的内置方法。但是有一种比它自身乘以k-times 更快的方法。看看fast exponentiation
      要设置多项式,只有一个接一个地设置它的系数。但是您可以编写一个函数来根据向量设置多项式中的所有系数。

    NTL 是一个很好的高性能数学库,但是有很多事情让使用这个库变得很困难......我认识的每个人都有数据类型的问题(正如你提到的,当你尝试乘以 RRZZ)。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-09-18
      • 1970-01-01
      • 2014-08-21
      • 1970-01-01
      相关资源
      最近更新 更多