Bill Allombert on Fri, 26 Mar 2004 18:58:30 +0100 |
[Date Prev] [Date Next] [Thread Prev] [Thread Next] [Date Index] [Thread Index]
Re: Magma <-> Pari/GP syntax ??? |
On Fri, Mar 26, 2004 at 08:23:28AM -0800, Richard Graham wrote: > Greetings, > > I searched the archives and looked at the documentation, > however I'm a Pari/GP newbie and not a mathematician. > Can Pari/GP perform the following Magma code? > ___________________________________________________________ > F:=GF(2); > P<x>:=PolynomialRing(F); First a _very_ important warning: I have changed to use a and x as variables, in that order, instead of x and X. Don't change that. See below how to use different names. > g:=x^5+x^2+1; g=(a^5+a^2+1)*Mod(1,2); > IsPrimitive(g); I am not sure what do IsPrimitive. > EF<alpha>:=ext<F|g>; alpha=Mod(a,g); > EP<X>:=PolynomialRing(EF); > G:=X^2 + alpha^2*X + alpha^16; G=x^2 + alpha^2*x + alpha^16; > (X^16 + alpha^2*X^15 + alpha^16*X^14 + X^5 + alpha^2*X^4 + alpha^16*X^3 > + X^2 + alpha^2*X + alpha^16) mod (G); (x^16 + alpha^2*x^15 + alpha^16*x^14 + x^5 + alpha^2*x^4 + alpha^16*x^3 + x^2 + alpha^2*x + alpha^16) % G > Is there a primer/tutorial for doing calculations in GF(2^n) > for Pari/GP? GP is not well suited for GF(2^n). It can do it sure, but it is not optimized at all. libpari is slightly better but far from perfect. Basically you build a generator alpha of GF(2^n) by using: alpha=Mod(a,ffinit(2,n,a)); and then you can compute with it normally. ==How to use other variable names:=== If you want to use 'foo' for 'a' and 'bar' for 'x' as variable, issue bar;foo at the start of your GP session. 'x' is not a valid choice for 'foo' here. The reason being variables need to be ordered so that GP compute in GF(2)[bar]/(P(bar))[foo] and not in G(2)(foo)[bar]/(P(bar)). variable priority is attributed as follow: 1) x has always the lowest priority 2) new variable are affected the lowest priority remaining in a first-come first-served basis. so in effect bar;foo declare that bar has lower priority than foo. (the choice of 'a' above was completly arbitrary) Cheers, Bill.