Opened 9 years ago

Closed 9 years ago

Last modified 9 years ago

#9052 closed enhancement (fixed)

Hasse invariant for elliptic curves

Reported by: voloch Owned by: cremona
Priority: minor Milestone: sage-4.4.3
Component: elliptic curves Keywords: Hasse invariant
Cc: Merged in: sage-4.4.3.alpha1
Authors: Felipe Voloch Reviewers: William Stein, John Cremona
Report Upstream: N/A Work issues:
Branch: Commit:
Dependencies: Stopgaps:

Description

Creates a method to compute the Hasse invariant of an elliptic curve over a function field of positive characteristic.

Attachments (3)

trac_9052.patch (1.7 KB) - added by voloch 9 years ago.
trac_9052_part2.patch (1.7 KB) - added by voloch 9 years ago.
trac_9053-reviewer.patch (2.4 KB) - added by cremona 9 years ago.
Apply after both previous patches

Download all attachments as: .zip

Change History (12)

Changed 9 years ago by voloch

comment:1 Changed 9 years ago by voloch

  • Milestone set to sage-4.4.3
  • Status changed from new to needs_review

Changed 9 years ago by voloch

comment:2 Changed 9 years ago by was

  • Status changed from needs_review to positive_review

Looks good to me.

comment:3 Changed 9 years ago by cremona

This is a coincidence, since just yesterday I was considering implementing functions is_supersingular() and is_ordinary(). Now this can be done very simply (since s.s. curves have invariant 0 and ordinary ones have nonzero invariant).

However, I'm a little worried about the efficiency of the current implementation for even modest p, since it involves raising a degree 3 polynomial to the power (p-1)/2 and then picking out one coefficient. There are easier ways to test supersingularity for small p, since one can precompute the s.s. j-invariants and check that. This would be a quicker way of computing H when it is 0. One could check that the j-invariant has degree at most 2 (else ordinary). And over the prime field GF(p), s.s. curves have cardinality p+1, and another way to check ordinary-ness is to take random points and multiply then by p+1. As a last resort one can compute the cardinality.

I guess this is enough for a second ticket!

Changed 9 years ago by cremona

Apply after both previous patches

comment:4 Changed 9 years ago by cremona

The first two patches apply fine and tests pass. I added a review patch which beefs up the docstring a little, adds some more examples (including one over a non-prime field), and also added one-liners for characteristics 5 and 7.

Strictly this should be looked at again (William?), but I don't seem to have the option of marking it as "needs review" again. In case you are wondering about the char. 5,7 cases, as well as doing the math I also systematically checked that this gives the same as the general method for *all* curves over GF(5) and GF(7)!

comment:5 Changed 9 years ago by was

Looks even better to me now, by far! Thanks John.

comment:6 Changed 9 years ago by was

  • Merged in set to 4.4.3.alpha1
  • Resolution set to fixed
  • Reviewers set to wstein, cremona
  • Status changed from positive_review to closed

comment:7 follow-up: Changed 9 years ago by cremona

Excellent. I have nearly finished a patch which implements is_supersingular and is_ordinary (independently of computing the Hasse inv.)

comment:8 Changed 9 years ago by mvngu

  • Merged in changed from 4.4.3.alpha1 to sage-4.4.3.alpha1
  • Reviewers changed from wstein, cremona to William Stein, John Cremona

comment:9 in reply to: ↑ 7 Changed 9 years ago by cremona

Replying to cremona:

Excellent. I have nearly finished a patch which implements is_supersingular and is_ordinary (independently of computing the Hasse inv.)

See #9087

Note: See TracTickets for help on using tickets.