trace over finite field extension

*To*: mathgroup at smc.vnet.net*Subject*: [mg6274] trace over finite field extension*From*: Daniel Lichtblau <danl>*Date*: Thu, 6 Mar 1997 09:49:19 -0500 (EST)*Sender*: owner-wri-mathgroup at wolfram.com

Pantelimon Stanica wrote: > > Hello, everyone! > > I would like to compute the function f(x)=Trace(x^(15)) defined on an > extension of degree 8 of a field of char=2, i.e. Z_2. The field of degree 8 > could be defined by the polynomial x^8+x^6+x^5+x^4+1 over Z_2. > I would like to write the function as a string of 0,1. Can anyone help? > I would appreciate any input. > P. Stanica > > -- > anon Apologies if I already responded to this. You can do it as below (I think I have it correct, but better double check). I do not know what you have in mind re writing as a string of 0,1 (back in the old days, I might have asked what machine you had in mind, and whether Assembler was allowable). If you mean want to translate the result to a bit vector in this form, it is not difficult to do so. In[34]:= poly = x^8+x^6+x^5+x^4+1; In[35]:= InputForm[elem = PolynomialReduce[x^15, poly, Modulus->2][[2]]] Out[35]//InputForm= 1 + x^6 + x^7 In[36]:= frob[z_] := z^2 In[37]:= InputForm[trace = PolynomialReduce[Apply[Plus, Table[frob[elem]^k, {k,8}]], poly, Modulus->2][[2]]] Out[37]//InputForm= x + x^2 + x^3 + x^4 + x^6 Note that for larger fields one can do this more efficiently using the standard package Algebra`PolynomialPowerMod`, or any other strategy that computes the successive powers of the Frobenius automorphism more efficiently. Daniel Lichtblau Wolfram Research danl at wolfram.com