Ask Your Question
0

Coefficient of polynomial in a Finite field

asked 2016-06-07 05:11:12 +0100

vishb gravatar image

Consider the following code :-

p=104711
r=101
K=GF(p)
L.<y>=K.extension(cyclotomic_polynomial(r))
for a in range(10000,10000000):
    f=(y+1)^(a)
    L=f.list()
    if L.count(0)>1:
        print "special low support %d" %a
        for i in range(100):
            if L[i]==0:
                print i

I want the list of coefficient of f(y) but when L is a field (which it for the above stated parameters ) it is giving this error.

AttributeError:
'sage.rings.finite_rings.element_pari_ffelt.FiniteFieldElement_pari_ffel\
t' object has no attribute 'list'

when L is a ring it is working perfectly. Also when I try to use f.coeff() it basically consider f(y) as a constant.

edit retag flag offensive close merge delete

1 Answer

Sort by ยป oldest newest most voted
0

answered 2016-06-07 11:07:22 +0100

B r u n o gravatar image

To get the coefficients, you need to view f as a polynomial in y, using f.polynomial(). Then list gives you the list of all coefficients, while coefficients gives you the list of nonzero coefficients:

sage: p = 104711
sage: r = 101
sage: K = GF(p)
sage: L.<y> = K.extension(cyclotomic_polynomial(r))
sage: f = (y+1)^10
sage: f.polynomial().list()
[1, 10, 45, 120, 210, 252, 210, 120, 45, 10, 1]
sage: f.polynomial().coefficients() # no difference since all coefficients are nonzero
[1, 10, 45, 120, 210, 252, 210, 120, 45, 10, 1]
sage: f = (y+1)^100
sage: len(f.polynomial().list())
100
sage: len(f.polynomial().coefficients()) # one zero coefficient
99
edit flag offensive delete link more

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

Stats

Asked: 2016-06-07 05:11:12 +0100

Seen: 2,021 times

Last updated: Jun 07 '16