Opened 11 years ago

Closed 11 years ago

implement listing j-invariants of CM curves over other fields and fix incorrect remark in the documentation

Reported by: Owned by: was cremona minor sage-4.7.1 elliptic curves kohel sage-4.7.1.alpha2 John Cremona, Robert Bradshaw, William Stein Robert Bradshaw, John Cremona N/A

This email thread says it all:

```Hi David,

Do you have a list of the CM j-invariants over Q(sqrt(5))?

http://www.sagemath.org/doc/reference/sage/schemes/elliptic_curves/cm.html

-- William

```
```Hi William,

I don't understand the comment (attribution to me) in the doc file.
I think it is a typo -- replace "field" with "functions" [on modular
curves of higher level].  In order to solve the problem (as a
precomputation) over an extension field F, it suffices to factor
the Hilbert class polynomials.  In this case the class number can
be up to 2 (degree [F:Q]).  The attached Magma and Sage code output
these values for F = Q(sqrt(5)).

Cheers,

David
```

I've attached his files to this ticket.

comment:1 Changed 11 years ago by cremona

The imaginary quadratic orders of class number 2 are the maximal orders in Q(sqrt(-d)) for d in [-5,-6,-10,-13,-15,-22,-35,-37,-51,-58,-91,-115,-123,-187,-235,-267,-403,-427] and the order of index 2 in Q(sqrt(-15)). [Reference: many places including J E Cremona, Abelian Varieties with Extra Twist, Cusp Forms, and Elliptic Curves Over Imaginary Quadratic Fields, Journal of the London Mathematical Society 45 (1992) 402-416.]

Using this list it's easy to write a function for the case of any quadratic field. [For Q(sqrt(5)) itself it is easy to see that the discriminant must have the form 5*D where D is a negative prime discriminant; this gives the same list output as David's script.]

For higher degree one could start with Mark Watkins' determination of all i.q.fields with h<=100 [See http://www.ams.org/journals/mcom/2004-73-246/S0025-5718-03-01517-5/S0025-5718-03-01517-5.pdf.] The number of fields can be as large as 3283 (for h=96) but the table there gives the maximal discriminant in each case --e.g.427 for h=2 -- so a script like David's is probably the way to go. That table only deals with maximal orders. There's still the question of non-maximal orders: I'll ask Mark if he knows if that has been done (it's just an exercise, but a lengthy one.)

comment:2 Changed 11 years ago by cremona

• Authors set to John Cremona
• Description modified (diff)
• Milestone changed from sage-4.7 to sage-4.7.1

I have done the implementation for quadratic fields.

Changed 11 years ago by cremona

Applies to 4.7.alpha5

comment:3 Changed 11 years ago by cremona

• Description modified (diff)
• Status changed from new to needs_review

comment:4 Changed 11 years ago by robertwb

• Status changed from needs_review to needs_info

The implementation of cm_j_invariants_and_orders looks wrong to me--you seem to be listing/zipping every D rather than only the ones corresponding to the j's found when the Hilbert polynomial is reducible.

As a side note there seems to be a lot of duplication between the two functions--given that cm_j_invariants_and_orders is just about a cheap, I'd just invoke that and strip off the part you want for cm_j_invariants. Also, I think the code might be cleaner if you make an inner function `d -> (D, f, j)` and then do `[func(d) for d in dlist]` (or the concatenation, if there are 0-2 results for every d) rather than expressing things as a series of list comprehensions with adjustments here and there.

comment:5 Changed 11 years ago by robertwb

• Status changed from needs_info to needs_review

comment:6 Changed 11 years ago by robertwb

• Status changed from needs_review to needs_work

comment:7 Changed 11 years ago by cremona

All good comments, and anything which makes it easier to add new degrees would be worth doing too. No time to work on this just now though...

comment:8 Changed 11 years ago by robertwb

• Status changed from needs_work to needs_review

Changed 11 years ago by robertwb

apply on top of previous

Changed 11 years ago by was

apply only this patch -- adds more documentation.

comment:9 Changed 11 years ago by was

• Status changed from needs_review to positive_review

I read the patches and I think this is now good. When reading, I missed Cremona's comment on this ticket, which made it harder to read the code, so I added his argument as a comment in the code. Otherwise, I changed nothing, except flattening the patches and making the authors both John and Robert.

Positive review (imho).

comment:10 Changed 11 years ago by cremona

• Authors changed from John Cremona to John Cremona, Robert Bradshaw
• Reviewers set to Robert Bradshaw, William Stein

I like the new version -- thanks for improving (and correcting) my first version, Robert!

comment:11 Changed 11 years ago by jdemeyer

• Authors changed from John Cremona, Robert Bradshaw to John Cremona, Robert Bradshaw, William Stein
• Description modified (diff)
• Reviewers changed from Robert Bradshaw, William Stein to Robert Bradshaw, John Cremona

comment:12 Changed 11 years ago by jdemeyer

• Merged in set to sage-4.7.1.alpha2
• Resolution set to fixed
• Status changed from positive_review to closed

comment:13 Changed 10 years ago by cremona

See #12356 for a very important bug fix!

Note: See TracTickets for help on using tickets.