最终场库的多项式

时间:2015-01-15 15:34:39

标签: c++ polynomials finite-field galois-field

我正在尝试找到一个C ++库来处理某些有限域GF(2 ^ n)上的多项式,并且支持矩阵表示,支持秩发现/逆或甚至求解A = X * B. 我正在尝试使用Linbox,但文档很少。 在使用库的Givaro部分做一些令人讨厌的事情后,我能够做到这一点将整数转换为多项式表示,但是我无法使用Linbox的rank / solve部分,因为它们似乎不处理多项式,只有指数为1的素数基数(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元素矩阵并反转它或得到它的秩或求解线性方程?或者我应该使用另一个图书馆吗?

1 个答案:

答案 0 :(得分:0)

看起来NTL就是解决方案。它给出了GF(2 ^ n)多项式的一个多项式的简单模拟,并且易于使用矩阵(逆,求解等)。