#10912: add order setters and Tate and ate pairings
-------------------------------+--------------------------------------------
   Reporter:  mariah           |       Owner:  cremona   
       Type:  enhancement      |      Status:  needs_work
   Priority:  major            |   Milestone:  sage-4.7  
  Component:  elliptic curves  |    Keywords:            
     Author:  Mariah Lenox     |    Upstream:  N/A       
   Reviewer:                   |      Merged:            
Work_issues:                   |  
-------------------------------+--------------------------------------------

Comment(by aly.deines):

 Ok, I can be more specific in what the error is.  In tate_pairing
 (P.tate_pairing(Q,n,k)), if P._miller_(Q, n) raises a
 ZeroDivisionError: Inverse does not exist., then it creates a random point
 R and then calles P.tate_pairing(Q+R,n,k).
 If Q+R is zero, then P._miller_(Q+R,n,k) raises an error.  This is not
 checked for and it seems that given certain
 random seeds this does occur.

 {{{

 p = 103; A = 1; B = 18; E = EllipticCurve(GF(p), [A, B])
 P = E(33, 91); n = P.order()
 k = GF(n)(p).multiplicative_order()
 set_random_seed(15)
 P.tate_pairing(P,n,k)

 Traceback (most recent call last):
   File "<stdin>", line 1, in <module>
   File "_sage_input_10.py", line 10, in <module>
     exec compile(u'open("___code___.py","w").write("# -*- coding: utf-8
 -*-\\n" +
 
_support_.preparse_worksheet_cell(base64.b64decode("cCA9IDEwMzsgQSA9IDE7IEIgPSAxODsgRSA9IEVsbGlwdGljQ3VydmUoR0YocCksIFtBLCBCXSkKUCA9IEUoMzMsIDkxKTsgbiA9IFAub3JkZXIoKQprID0gR0YobikocCkubXVsdGlwbGljYXRpdmVfb3JkZXIoKQpzZXRfcmFuZG9tX3NlZWQoMTUpClAudGF0ZV9wYWlyaW5nKFAsbixrKQ=="),globals())+"\\n");
 execfile(os.path.abspath("___code___.py"))
   File "", line 1, in <module>

   File
 
"/private/var/folders/l5/l55HHC6uExG+F0kEqsPAgU+++TM/-Tmp-/tmpjVE30I/___code___.py",
 line 7, in <module>
     exec compile(u'P.tate_pairing(P,n,k)
   File "", line 1, in <module>

   File "/Users/aly/Desktop/sage-4.7.alpha2/local/lib/python2.6/site-
 packages/sage/schemes/elliptic_curves/ell_point.py", line 1751, in
 tate_pairing
     ret = self.tate_pairing(Q + R, n, k)/self.tate_pairing(R, n, k)
   File "/Users/aly/Desktop/sage-4.7.alpha2/local/lib/python2.6/site-
 packages/sage/schemes/elliptic_curves/ell_point.py", line 1746, in
 tate_pairing
     ret = self._miller_(Q, n)
   File "/Users/aly/Desktop/sage-4.7.alpha2/local/lib/python2.6/site-
 packages/sage/schemes/elliptic_curves/ell_point.py", line 1446, in
 _miller_
     raise ValueError, "Q must be nonzero."
 ValueError: Q must be nonzero.

 }}}

-- 
Ticket URL: <http://trac.sagemath.org/sage_trac/ticket/10912#comment:4>
Sage <http://www.sagemath.org>
Sage: Creating a Viable Open Source Alternative to Magma, Maple, Mathematica, 
and MATLAB

-- 
You received this message because you are subscribed to the Google Groups 
"sage-trac" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to 
[email protected].
For more options, visit this group at 
http://groups.google.com/group/sage-trac?hl=en.

Reply via email to