Thank you! I had already tried it, but Sage doesn't allow me to do that 
because the coefficients of the polynomial ep are not in Fpr.

On Monday, April 7, 2014 8:09:59 PM UTC+2, Maarten Derickx wrote:
>
> You should use on of the following two commands:
>
> A1.<theta>=FFpr.quotient(ep)
>
>
> A1.<theta>=PolynomialQuotientRing(FFpr,ep)
>
> Le lundi 7 avril 2014 16:33:00 UTC+2, Irene a écrit :
>>
>> I am programming an example about elliptic curves but I need to define a 
>> couple of field extensions to make there some operations and Sage consider 
>> them as rings, then it doesn't allow me to compute divisions.
>> What can I do?
>> Here is the code:
>>
>> p=3700001
>> Fp=GF(p)
>> E=EllipticCurve([Fp(3),Fp(5)])
>> j=E.j_invariant()
>> l=13#Atkin prime
>> n=((l-1)/2).round()
>> r=2# Phi_13 factorize in factors of degree 2
>> s=12#Psi_13 factorize in factors of degree 12
>>
>> #repsq(a,n) computes a^n
>> def repsq(a,n):
>>     B = Integer(n).binary()
>>     C=list(B)
>>     k=len(B)-1
>>     bk=a
>>     i=1
>>     while i <= k:
>>         if C[i]=="1":
>>             bk=(bk^2)*a
>>         else:
>>             bk=bk^2
>>         i=i+1
>>     return bk
>>
>> d=E.division_polynomial(13)
>> Fps=GF(repsq(p,s),'a')
>> Fpr=GF(repsq(p,r),'b')
>> FFpr.<x>=PolynomialRing(Fpr)
>> Fl=GF(l)
>> c=GF(2)
>> rts=d.roots(Fps,multiplicities=False)
>> Px=rts[0]
>> Py2=Px^3+3*Px+5
>> c=Fl.multiplicative_generator()
>>
>> def produx(n,Qx):
>>     if is_odd(n):
>>         
>> pro=Qx-(E.division_polynomial(n-1,(Qx,1),two_torsion_multiplicity=1)*E.division_polynomial(n+1,(Qx,1),two_torsion_multiplicity=1))/((E.division_polynomial(n,(Qx,1),two_torsion_multiplicity=1)^2)
>>  
>> * (Qx+3*Qx+5))
>>     else:
>>         
>> pro=Qx-(E.division_polynomial(n-1,(Qx,1),two_torsion_multiplicity=1)*E.division_polynomial(n+1,(Qx,1),two_torsion_multiplicity=1))*(Qx^3+3*Qx+5)/(E.division_polynomial(n,(Qx,1),two_torsion_multiplicity=1)^2)
>>     return pro
>>     
>> #Ray-polynomial
>> def EP(x,Qx,n):
>>     i=2
>>     m=(x-Qx)
>>     while i<=n:
>>         m=m*(x-produx(n,Qx))
>>         i=i+1
>>     return m
>>
>> ep=EP(x,Px,n)
>> #A1.<theta>=FFpr.extension(ep)
>> #A1.<theta>=PolynomialQuotientRing(Fpr,ep)
>>
>>

-- 
You received this message because you are subscribed to the Google Groups 
"sage-support" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To post to this group, send email to [email protected].
Visit this group at http://groups.google.com/group/sage-support.
For more options, visit https://groups.google.com/d/optout.

Reply via email to