http://www.singular.uni-kl.de/Manual/la ... htm#SEC766Edit: see the
Notehttp://www.singular.uni-kl.de/Manual/la ... htm#SEC256Singular can (at the moment) not factorize over GF(p^n) for baserings
defined as
ring r =(p^n,a),.... So you have to choose the fir st form by setting the minpoly yourself.
Code:
> ring ra5 = (25,a),(x,y,z),dp;
> poly f = (x+y)*(z-x);
> factorize(f);
? not implemented
? error occurred in or before STDIN line 9: `factorize(f);`
> basering;
// # ground field : 25
// primitive element : a
// minpoly : 1*a^2+4*a^1+2*a^0
// number of vars : 3
// block 1 : ordering dp
// : names x y z
// block 2 : ordering C
> ring ra25 = (5,a),(x,y,z),lp;
> minpoly = 1*a^2+4*a^1+2*a^0;
> poly f = (x+y)*(z-x);
> factorize(f);
[1]:
_[1]=1
_[2]=x+y
_[3]=-x+z
[2]:
1,1,1
Code:
> LIB "general.lib";
> cyclic(3);
_[1]=x+y+z
_[2]=xy+xz+yz
_[3]=xyz-1
> ideal I = _;
> option(redSB);
> facstd(I);
[1]:
_[1]=z+(-2a-1)
_[2]=y+(2a+2)
_[3]=x-1
[2]:
_[1]=z-1
_[2]=y+(-2a-1)
_[3]=x+(2a+2)
[3]:
_[1]=z+(2a+2)
_[2]=y-1
_[3]=x+(-2a-1)
[4]:
_[1]=z-1
_[2]=y+(2a+2)
_[3]=x+(-2a-1)
[5]:
_[1]=z+(2a+2)
_[2]=y+(-2a-1)
_[3]=x-1
[6]:
_[1]=z+(-2a-1)
_[2]=y-1
_[3]=x+(2a+2)
Then check also
triang.libhttp://www.singular.uni-kl.de/Manual/la ... tm#SEC1556Code:
> triangLfak(std(I));
[1]:
_[1]=z-1
_[2]=y+(-2a-1)
_[3]=x+(2a+2)
[2]:
_[1]=z-1
_[2]=y+(2a+2)
_[3]=x+(-2a-1)
[3]:
_[1]=z+(-2a-1)
_[2]=y-1
_[3]=x+(2a+2)
[4]:
_[1]=z+(-2a-1)
_[2]=y+(2a+2)
_[3]=x-1
[5]:
_[1]=z+(2a+2)
_[2]=y+(-2a-1)
_[3]=x-1
[6]:
_[1]=z+(2a+2)
_[2]=y-1
_[3]=x+(-2a-1)