最终场库上的多项式

Polynomial over final field library

我试图找到一个 C++ 库来处理某些有限域 GF(2^n) 上的多项式并支持矩阵表示,支持秩 finding/inverse 甚至求解 A=X*B . 我正在尝试使用 Linbox,但文档很少。 在对库的 Givaro 部分做了一些令人讨厌的事情之后,我能够将整数转换为多项式表示,但我无法使用 Linbox 的 rank/solve 部分,因为它们似乎没有处理多项式,只有指数为一的素数基数 (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) 上的元素和 return 不正确的值。

关于如何使用这个库的任何想法?有一个 GF(2^n) 的 MxM 元素矩阵并对其求逆或求其秩或求解线性方程?或者我应该使用另一个库?

看起来 NTL 是解决方案。它提供了 GF(2^n) 多项式的舒适实现模一些多项式和简单的矩阵工作(逆,求解等)