#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:                   |  
-------------------------------+--------------------------------------------
Changes (by aly.deines):

  * status:  new => needs_work


Comment:

 When I tried timing the first example in the tate_pairing, I got the
 following error:
 {{{

 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()
 timeit('P.tate_pairing(P, n, k)')

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

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

   File "sage_timeit_class.pyx", line 82, in
 sage.misc.sage_timeit_class.SageTimeit.__call__
 (sage/misc/sage_timeit_class.c:744)
   File "sage_timeit_class.pyx", line 59, in
 sage.misc.sage_timeit_class.SageTimeit.eval
 (sage/misc/sage_timeit_class.c:605)
   File "/Users/aly/Desktop/sage-4.7.alpha2/local/lib/python2.6/site-
 packages/sage/misc/sage_timeit.py", line 181, in sage_timeit
     if timer.timeit(number) >= 0.2:
   File "/Users/aly/Desktop/sage-4.7.alpha2/local/lib/python/timeit.py",
 line 193, in timeit
     timing = self.inner(it, self.timer)
   File "<magic-timeit>", line 6, in inner
   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.

 }}}
 Whereas without the timing everthing is fine:
 {{{

 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()
 P.tate_pairing(P, n, k)
 1

 }}}

-- 
Ticket URL: <http://trac.sagemath.org/sage_trac/ticket/10912#comment:3>
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