当前位置: 首页 > 工具软件 > ntl > 使用案例 >

NTL库介绍

仲孙飞文
2023-12-01

NTL链接

NTL:用于做数论的库

NTL是一种高性能的可移植C ++库,提供用于处理带符号的任意长度整数以及整数和有限域上的矢量,矩阵和多项式的数据结构和算法。
默认情况下,NTL是线程安全的。
NTL是根据LGPLv2.1 +(即LGPL 2.1版或更高版本)分发的[更多详细信息]
如果您有兴趣为NTL的发展做出贡献,请与我联系(请参阅下面的联系信息)。我正在考虑几个项目,也很乐意讨论其他想法。
现已提供:NTL 11.4.3
有关最近更改的更多详细信息

链接
文献资料

资料下载

故障排除指南

联系信息和论坛

NTL获奖
NTL的作者最近因其在NTL方面的工作而获得了ACM / SIGSAM理查德·迪米克·詹克斯(Richard Dimick Jenks)杰出软件工程纪念奖,该奖被应用到计算机代数。

NTL和FLINT
我已经基于NTL 11.4.3,FLINT 2.6.0和GMP 6.2在NTL和FLINT中的多项式算法之间进行了比较。您可以在此报告中查看结果。您可以在此处下载所有测试程序。
简短的简介:在许多设置中NTL更快,而在其他设置中FLINT更快。这实际上取决于您在做什么。请阅读报告以获取全部详细信息。

线程提升
从9.5版开始,NTL现在不仅具有线程安全性,而且还包括新的线程增强功能,该功能利用多个内核来加快低级计算的速度。这是一项正在进行的工作,到目前为止,仅ZZ_pX算术是线程增强的。您可以在此报告(2016.23.11更新)中看到在多项式因式分解的背景下线程增强的效果。您可以在此处下载测试程序。该报告的较旧版本在此处提供。
简短的概要:使用8核,NTL(已经非常快)的算法通过ZZ_p分解多项式,现在运行速度提高了5-6倍。这是提高了低级ZZ_pX和mat_ZZ_p算法的结果:高级分解例程完全不变。

NTL之旅:简介

NTL是一种高性能的可移植C ++库,为任意长度的整数提供数据结构和算法。用于整数和有限域上的向量,矩阵和多项式;以及任意精度的浮点运算。
NTL为以下方面提供了最新算法的高质量实现:

  • 任意长度整数算法和任意精度浮点算法;
  • 整数和有限域上的多项式算术,包括基本算术,多项式因式分解,不可约性测试,最小多项式的计算,迹,范数等;
  • 格基约化,包括Schnorr-Euchner的非常健壮和快速的实现,Korkin-Zolotarev块的减少以及针对Korkin-Zolotarev块的新Schnorr-Horner修剪启发法;
  • 整数,有限域和任意精度浮点数的基本线性代数。

NTL的多项式算法是世界上最快的多项式算法之一,已用于设置多项式因式分解的“世界记录”并确定椭圆曲线的阶数。
就速度和鲁棒性而言,NTL的格约化代码也是世界上最好的可用代码之一,并且是通过Schnorr-Horner修剪启发式进行块Korkin-Zolotarev减少的少数实现之一。它已被用来“破解”几种密码系统。
NTL可以在几分钟之内轻松地安装在几乎任何平台上,包括几乎任何运行Unix,Mac OS或Windows的32位或64位计算机。 NTL可以与GMP(GNU Multi-Precision库)一起构建,以提高性能(这是Unix和Mac OS上的默认设置)。 NTL还可以与gf2x库一起构建,以便在GF(2)上更快地计算大多项式。
NTL为代表数学对象的各种类提供了一个干净一致的接口。它为轻松快速地实现新的数论算法提供了良好的环境,而又不影响性能。
NTL由Victor Shoup编写和维护,其他人也做出了一些贡献(请参阅致谢)

 类似资料: