Without going into detail, this is due to the fact that the polynomials have another presentation
over Galoisfields and different algorithms / implementations are involved. Also factorize is not at
Note that in general f/g
only gives the quotient without remainder. Most likely that is not what
you want, but you are not lost here.
There is the command division http://www.singular.uni-kl.de/Manual/latest/sing_226.htm#SEC266
which performs the task. It is important to use a global odering dp
as you do.
? not implemented
? error occurred in or before STDIN line 6: `factorize(f);`
> list L = division(f,g);
> f==g*L[1,1] + L;
> (x-1)*(x+1) + 2;
(The third value L
is a unit matrix in global ordering, but the result is different
if you would work in ring rads = (49a,),x,ds;
You may also define this finite field as an quadratic extension of Z_7 by the
minimal polynomial displayed from the ring itself.
> setring r;
// coefficients: ZZ/49[a]
// minpoly : 1*a^2+6*a^1+3*a^0
// number of vars : 1
// block 1 : ordering dp
// : names x
// block 2 : ordering C
With this approach, the elements are not represented as a power of the primitive
, but now f/g and factorize work.
> ring ra49 = (7,a),x,dp; minpoly = a2+6a+3;
// compare with above
> poly f = x2+1;
> poly g = x+1;
> factorize (f);
> f == (x-1)*g +2;