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
fixed fields for dirichlet characters and conductors and dirichlet characters for abelian fields #9407
Comments
Attachment: trac_9407.patch.gz exported against 4.4.4.alpha0 |
exported against 4.5.2.alpha1 |
comment:1
Attachment: trac_9407.2.patch.gz Apart from the above the patch here also introduces the function There are a few minor things that could be improved at a later state (which I write down here so that I won't forget) :
|
comment:2
This is ready for review, now. Only the second patch must be applied. |
comment:3
This would all be a very useful enhancement. I have a few comments, mostly minor. The patch applies ok to 4.6.rc0 (with a little fuzz) and all doctests in rings/number_fields pass. There are some spelling mistakes in the docstrings... #9400 is now merged: does that help? How hard is it to get the 2-part of the conductor? If it is really hard, why not just honestly return the odd part (and change the name, or something)? I am a bit worried about the 53-bit precision used to compute the polynomials. Do you now that it always enough (surely not!), or is that wishful thinking? Is it much too slow to use the appropriate cyclotomic field? |
comment:4
Maybe, I did not think about it.
I don't know. Right now it give the right thing quite frequently, but not always. I would have to think harder to see if one can put the 2-part in as well. I won't do that, I fear.
It is really very very slow with cyclotomic fields. To be honest, I do not think anyone wants to construct a field of the size that would require higher precision in this computation. But that is not an argument to improve this. |
comment:5
I think the computation of fixed field polynomials can be made fasterusing Gauss's formula for the products of periods; see Disquisitiones §343 and/or van der Waerden §54. The formula involves only the exponents of The code with which I've been testing this follows. I've removed the requirement that the order d is prime, which is unnecessary, and dealt separately with the easy cases d = 2 and f = 1.
|
comment:6
Thanks to the suggestion of Francis Clarke above, I could improve this patch now. I substituted his suggested algorithm, which is indeed better. As for the clumsy implementation of the conductor. I rewrote it a little bit. I did not look into the issue how to get the right power of 2; nor if there is a better algorithm (as this is all I will need for my work). I believe #9400 does not help to make it better. |
replaces the previsou patches. exported against 4.6.1 |
comment:7
Attachment: trac_9407_new.patch.gz |
comment:8
Apply trac_9407_new.patch What is that symbol meant to be on line 688 of sage/modular/dirichlet.py? Disquisitiones §343. It looks like A-hat for me. |
This comment has been minimized.
This comment has been minimized.
comment:9
All tests pass (including long). I did not take the time to check the algorithms. Documentation and code (aside from the actual algorithms) looks good. Here are some comments:
And then only the algorithms need to be checked. |
Reviewer: Marco Streng |
comment:10
Thanks for all the comments. I will change these things (but not immediately, unfortunately) . Maybe I could even turn it into ablian groups rather than lists. ... When I have time. |
comment:16
This is very old code and I nor anyone else has looked at it for 6 years. I am still interested that these functionality gets added to sage at some point. I doubt that I will have much time at hand to do anything about it I am afraid. |
Branch: u/alexjbest/dirich-kernel |
Commit: |
comment:18
I converted this into a git branch and changed the fixed_field_polynomial functionality to use pari instead as discussed on LMFDB/lmfdb#3994 , thanks to Aurel Page for the Pari code. I have left the old code for fixed_field_polynomial intact, although it only works for prime conductor and order characters I like the idea of having a second easily viewable implementation in the source, to verify against if necessary. New commits:
|
Changed author from Michael Daub, John Bergdall, Chris Wuthrich to Michael Daub, John Bergdall, Chris Wuthrich, Alex J. Best |
comment:20
What about
instead of
? |
Branch pushed to git repo; I updated commit sha1. New commits:
|
Branch pushed to git repo; I updated commit sha1. New commits:
|
comment:23
typos: "poynomial" "Give a Dirichlet" some dirichlet missing their D capital in the documentation
|
comment:24
This + K = NumberField(poly, 'a')
+ return K could be just one line. Same for + A = [map_Zmstar_to_Zm(h) for h in Hgens]
+ return A |
Branch pushed to git repo; I updated commit sha1. New commits:
|
comment:26
Thanks Frédéric! Should be all fixed but I didn't run tests locally. |
Branch pushed to git repo; I updated commit sha1. New commits:
|
comment:28
ok, let it be |
Changed reviewer from Marco Streng to Marco Streng, Frédéric Chapoton |
Changed branch from u/alexjbest/dirich-kernel to |
There is a correspondance between groups of Dirichlet characters and Galois groups of abelian fields (over Q). We implement here three functions
the conductor of an abelian field
the set of Dirichlet characters of an abelian field
the fixed field of a Dirichlet character
Apply attachment: trac_9407_new.patch
Component: number fields
Keywords: Dirichlet characters, abelian fields, class field theory
Author: Michael Daub, John Bergdall, Chris Wuthrich, Alex J. Best
Branch/Commit:
0f037c5
Reviewer: Marco Streng, Frédéric Chapoton
Issue created by migration from https://trac.sagemath.org/ticket/9407
The text was updated successfully, but these errors were encountered: