Ask Your Question

Representing finite field elements in terms of subfield elements

asked 2014-01-11 15:36:15 +0200

hds gravatar image

I am trying to do something along the lines of magma's Eltseq function between two finite fields of the same characteristic. I'm hoping that this will be easier now that the conway polynomial work has been included in sage.

Given an element of a finite field, I would like to be able to get that element as a polynomial in the generator of the finite field, but with coefficients in a non-prime subfield.

K.<w2> = FiniteField(2^2, conway=True, prefix="w")
L.<w4> = FiniteField(2^4, conway=True, prefix="w")
a = (w2+1)*w4 + 1 # a = w4^3 + w4^2 + w4 + 1

# Currently we can do this to get a polynomial with coefficients in the prime subfield:
a.polynomial().list() # returns [1, 1, 1, 1]

# I would like this same, but for any subfield:
a.polynomial(K).list() # would return [1, w2+1]

Does anything like this exist? I've been wracking my brain trying to work out how to do this in an efficient manner, but I can't come up with anything.

Any help in this, even just pointing me in the right direction, would be very much appreciated.

edit retag flag offensive close merge delete

1 Answer

Sort by ยป oldest newest most voted

answered 2014-01-12 16:03:19 +0200

Luca gravatar image

This is not supported yet. Your best option, for the moment, is use linear algebra:

sage: M = matrix([vector(w4^i*w2^j) for i in range(2) for j in range(2)])
sage: M
[1 0 0 0]
[0 1 1 0]
[0 1 0 0]
[0 0 1 1]
sage: vector(a) * M^-1
(1, 0, 1, 1)

which, of course, says $a$ equals $1 + w_4(1+w_2)$.

edit flag offensive delete link more


Fantastic! Thanks Luca, that's exactly what I needed.

hds gravatar imagehds ( 2014-01-13 05:32:33 +0200 )edit

Your Answer

Please start posting anonymously - your entry will be published after you log in or create a new account.

Add Answer

Question Tools

1 follower


Asked: 2014-01-11 15:36:15 +0200

Seen: 927 times

Last updated: Jan 12 '14