最终场库上的多项式

Polynomial over final field library

本文关键字:多项式      更新时间:2023-10-16

我正在尝试找到一个C++库,该库可以处理某些有限域GF(2^n)上的多项式,并支持矩阵表示,支持秩查找/逆甚至求解A = X * B。我正在尝试使用Linbox,但文档很少。在使用库的 Givaro 部分做一些令人讨厌的事情后,我能够将整数转换为多项式表示,但我无法使用 Linbox 的秩/求解部分,因为它们似乎不处理多项式,只有指数为一的素数基(GF(2))。

这是代码的一部分

LinBox::GivaroGfq GF28(2, 8);
typedef LinBox::BlasMatrix<LinBox::GivaroGfq> Matrix;
Matrix mat(GF28);
//...Resize to MxM and insert M^2 elements
unsigned long int r;
rank(r, mat);

调试时, rank 函数总是将元素视为 GF(2) 上的元素并返回不正确的值。

关于如何使用这个库的任何想法?有一个 GF(2^n) 的 MxM 元素矩阵并反转它或得到它的秩或求解线性方程?还是我应该使用其他库?

看起来NTL是解决方案。它提供了GF(2^n)多项式模化一些多项式的舒适实现,并且易于使用矩阵(逆矩阵,求解等)。