Ticket #1119 (closed defect: fixed)

Opened 3 years ago

Last modified 3 years ago

[with patch, positive review] EllipticCurve.random_element for char=2

Reported by: malb Owned by: malb
Priority: major Milestone: sage-2.9
Component: number theory Keywords:
Cc: Author(s):
Report Upstream: Reviewer(s):
Merged in: Work issues:

Description

This should work:

sage: k.<a> = GF(2^5)
sage: E = EllipticCurve(k,[k.random_element() for _ in range(5)])
sage: E
Elliptic Curve defined by y^2 + (a^3+1)*x*y + (a^4+a^3+a)*y = x^3 +
(a^4+a^3+a^2+a)*x^2 + (a^4+a^2+a+1)*x + a^2 over Finite Field in a of
size 2^5
sage: E.random_element()
Exception (click to the left for traceback):
...
ZeroDivisionError: division by zero in finite field.

Attachments

ell_gf2_random.patch Download (4.6 KB) - added by malb 3 years ago.
ell_gf2_random2.patch Download (1.6 KB) - added by robertwb 3 years ago.

Change History

Changed 3 years ago by malb

  • owner changed from was to malb
  • status changed from new to assigned
  • summary changed from EllipticCurve.random_element for char=2 to [with patch] EllipticCurve.random_element for char=2

The attached patch fixes this (probably in a too naive way).

Changed 3 years ago by malb

Changed 3 years ago by mabshoff

  • milestone changed from sage-2.9 to sage-2.8.13

Changed 3 years ago by robertwb

Changed 3 years ago by robertwb

Given E defined by f(x,y) = 0, the patch assumed that there were always exactly zero or two values of y for every x, which is not true. I've attached a patch fixing this issue.

Also, in the characteristic > 2 case, it never considered the 'negative' square-root. I changed this too.

Otherwise, the patch looks good.

Changed 3 years ago by was

  • summary changed from [with patch] EllipticCurve.random_element for char=2 to [with patch, positive review] EllipticCurve.random_element for char=2

#1119 looks good. It is slow but I don't know if that can be helped.

Changed 3 years ago by mabshoff

  • status changed from assigned to closed
  • resolution set to fixed

Merged in 2.9.rc0.

Note: See TracTickets for help on using tickets.