Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Improve minimal_quadratic_twist() #14060

Closed
JohnCremona opened this issue Feb 5, 2013 · 19 comments
Closed

Improve minimal_quadratic_twist() #14060

JohnCremona opened this issue Feb 5, 2013 · 19 comments

Comments

@JohnCremona
Copy link
Member

We need a better implementation of minimal_quadratic_twist(), for example if the conductor is square-free then there is no need to do so much work as is currently done. Additionally, when j(E)=0 or 1728 the curve returned is a minimal quadratic twist, but not necessarily the minimal twist, and it would be a good thing for the documentation to make this clear.

CC: @categorie

Component: elliptic curves

Keywords: pari precision

Author: John Cremona

Branch/Commit: u/wuthrich/ticket/14060 @ 634ab95

Reviewer: Chris Wuthrich

Issue created by migration from https://trac.sagemath.org/ticket/14060

@JohnCremona JohnCremona added this to the sage-5.11 milestone Feb 5, 2013
@JohnCremona JohnCremona self-assigned this Feb 5, 2013
@jdemeyer jdemeyer modified the milestones: sage-5.11, sage-5.12 Aug 13, 2013
@jdemeyer
Copy link

jdemeyer commented Jan 9, 2014

comment:2

Precision issue is #13163.

@jdemeyer

This comment has been minimized.

@jdemeyer jdemeyer changed the title Some elliptic curve functions fail since pari_curve is created with insufficient precision Improve minimal_quadratic_twist() Jan 9, 2014
@JohnCremona
Copy link
Member Author

comment:3

I see two possibilities here: either rename this function minimal_twist() and return (as it does now) a curve which may be a sextic or quartic twist when j=0 or j=1728; or keep this name and be more restrictive for those j-invariants so that the returned curve literally is a quadratic twist. A third possibility is to have both named functions, doing the same thing unless j=0 or j=1728.

I am CC-ing Chris W since the only place where this function is used (according to search_src()) is in sha_tate.py, line 540, and whatever we do must be compatible with what is needed there!

Of course this is in addition to adding one line to return self of self.conductor().is_squarefree().

@chriswuthrich
Copy link
Contributor

comment:4

In sha_tate and in general for p-adic L-functions we can only twist by quadratic characters (well, I can only, maybe someone else knows more). So if changing the function one has to be careful to twist only by quadratic twists for these two cm curves. But if I remember correctly, we currently exclude cm curve (which we would not have to do in fact).

@JohnCremona
Copy link
Member Author

comment:5

Looking more carefully at the code (I am not embarrassed that I wrote it but could not remember) I see that for j=0 and j=1728 the curve returned is always a quadratic twist. So the "additionally" part of the ticket's current description is incorrect.

If you agree with me on that (and a second opinion would be welcome!) then that just leaves the first part which I can easily implement by adding one line.

@chriswuthrich
Copy link
Contributor

comment:6

We could have a minimal_twist function, too, if you wish, but I need minimal_quadratic_twist for modular symbols. If you can simplify the current function that is certainly a good thing to do.

I am not sure what changes you want to make, but if you do them, I should be able to look at them and review it quickly.

(from Besancon)

@JohnCremona
Copy link
Member Author

Branch: u/cremona/ticket/14060

@JohnCremona

This comment has been minimized.

@JohnCremona
Copy link
Member Author

Author: John Cremona

@JohnCremona
Copy link
Member Author

Commit: dc07e49

@JohnCremona
Copy link
Member Author

comment:8

I have implemented the small improvement (do nothing if the conductor is square-free) with a new doctest, and also expanded on the documentation in the exceptional cases j=0, 1728 to remove any confusion, with an example!

I decided not to implement a new minimal_twist() function since

EllipticCurve(j=E.j_invariant())

does that. But I could.


Last 10 new commits:

520cfcaMerge branch 'master' of git://github.com/sagemath/sage into build_system
38d22b7Merge branch 'master' of ssh://trac.sagemath.org:2222/sage into build_system
139dcf5Merge branch 'build_system' of git://github.com/sagemath/sage into build_system
17e17ddMerge branch 'master' of ssh://trac.sagemath.org:2222/sage into build_system
b06bd7cMerge branch 'master' of git://github.com/sagemath/sage
858bb95Merge branch 'master' of git://github.com/sagemath/sage
0523e0dMerge branch 'master' of git://github.com/sagemath/sage
88ffd55Merge branch 'master' of git://github.com/sagemath/sage
68d0a5dMerge branch 'master' of git://github.com/sagemath/sage
057b3cdMerge branch 'master' of git://github.com/sagemath/sage

@JohnCremona
Copy link
Member Author

comment:9

There are lots of commits listed above, none of which is mine. The relevant one, which you can see by clicking on the branch name, is dc07e494c5230bef1dd7e1a0df351194a03acb36 .

@fchapoton
Copy link
Contributor

comment:10

the note field is only indented by 3 spaces, there should be 4

@chriswuthrich
Copy link
Contributor

Changed branch from u/cremona/ticket/14060 to u/wuthrich/ticket/14060

@chriswuthrich
Copy link
Contributor

Changed commit from dc07e49 to 634ab95

@chriswuthrich
Copy link
Contributor

comment:11

I rebased it to the 6.1.beta6 in the hope that the extra merge commits above do not show anymore (even if they are harmless.

Since all test then pass for me, I give it a positive review.


New commits:

634ab95trac #14060: improvement to minimal_quadratic_twist

@chriswuthrich
Copy link
Contributor

Reviewer: Chris Wuthrich

@chriswuthrich
Copy link
Contributor

comment:12

By the way, I believe there are 4 spaces before the ..note. No ? At least the html output seems ok.

@JohnCremona
Copy link
Member Author

comment:13

Replying to @categorie:

By the way, I believe there are 4 spaces before the ..note. No ? At least the html output seems ok.

I don't know, I thought that not warnings were produced when building the docs but have forgotten.

Thanks for the review!

@sagetrac-vbraun-spam sagetrac-vbraun-spam mannequin modified the milestones: sage-6.1, sage-6.2 Jan 30, 2014
@vbraun vbraun closed this as completed in 7d5d097 Feb 1, 2014
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

5 participants