【问题标题】:LLL algorithm in NTL libraryNTL库中的LLL算法
【发布时间】:2014-06-17 02:20:53
【问题描述】:

我目前正在学习使用 NTL 库,尤其是以后的 LLL 算法。有人知道 NTL 库中 LLL 函数的用法吗?提前致谢。

【问题讨论】:

  • 除了文档之外,您还需要什么吗? shoup.net/ntl/doc/LLL.txt
  • @mc110:我看到了这个文档。但是你如何使用LLL函数,即你能举个例子吗?

标签: c ntl


【解决方案1】:

来自“文档”:

long 
[G_]LLL_{FP,QP,XD,RR} (mat_ZZ& B, [ mat_ZZ& U, ] double delta = 0.99, 
                   long deep = 0, LLLCheckFct check = 0, long verbose = 0);

您可以通过调用例如使用 LLL 函数

LLL_FP(B)

后缀FP 标记精度,因为计算是在浮点运算中完成的。这样做是为了加速 LLL 算法。如果您需要更好的精度,您可以选择其他后缀QPXDRR 之一。

注意B 必须是ZZ 类型的矩阵。 NTL 使用矩阵的 作为点阵的基础。 (我遇到了这个问题,因为 C.P. Schnorr 教授将格基写为 columns

减少后,LLL 减少的基会覆盖您的输入矩阵 B。如果你需要转换矩阵U,做reducktioinU*B = B_LLL,你可以调用

LLL_FP(B, U)

我希望这会有所帮助。

【讨论】:

  • 矩阵B可以是非正方形的吗?
  • 我认为是的,但也许它必须是一个基础,这意味着它必须有 mor 列而不是行。但您可以轻松地对此进行测试。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-10-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多