-
-
Notifications
You must be signed in to change notification settings - Fork 548
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
Implement Riemann theta functions #6371
Comments
Attachment: trac_6371-riemann-theta.patch.gz |
comment:1
I want to make sure this code doesn't get lost. It's very much [needs work] -- I don't think all tests are tagged Fredrik, somewhere in here there are lots of calls to the incomplete gamma function. I used low precision as much as possible as you will see, because I don't really need high precision, I just need large outputs. Chris, this applies against 4.0.2.alpha1 at least. Documentation and testing appreciated! |
comment:2
Marco, you might be interested in this work in progress code too. |
comment:3
Is double precision sufficient? Are the arguments large, integers or half-integers? In either case, very fast evaluation of the incomplete gamma function should be possible. |
comment:4
To use this, type
|
comment:6
Over the past month or two I've done considerable work vetting out the bugs and errors in the above code. Within a week or so I hope to post a replacement patch. Hence, the change of owner. I'll keep everyone who's interested posted on my progress. A word of warning, though: since I know a lot of people who are interested in my getting Riemann theta into Sage as soon as possible I had to strip Shimura phi, Siegel theta, and Klein P. I'm not qualified to review / bug fix that part of the code. I hope this is okay with the original authors and people who are interested in seeing this patch resolved. Perhaps we can move these implementations into a new patch once Riemann theta is implemented. Again, I'll be posting a replacement patch sometime within the next two weeks or so. |
comment:7
I am the original author, and I think this is a very reasonable decision! You should know that I use "Siegel theta" and "Riemann theta" interchangeably. Riemann theta often seems to mean just with characteristics (0, 0, ..., 0) and Siegel theta seems to be a Mathematica-ism. Whatever we decide on is (probably) fine by me.
These bits are interesting for my research, but probably are not all that interesting more generally. Cut them for now. Thanks for you efforts, Chris! |
comment:8
Huzzah! Thank |
Attachment: trac_6371-riemann-theta-REPLACEMENT.patch.gz Replacement for first patch by ncalexan |
Changed author from Nick Alexander to Nick Alexander, cswiercz |
comment:9
Note that the second patch is meant to replace the first. Many many changes were made! |
comment:10
Some clarifications and fine tuning needs to be made to the documentation. |
Part 2 of the replacement patch. Includes documentation fixes. |
comment:11
Attachment: trac_6371-riemann-theta-REPLACEMENT-PART2.patch.gz |
Attachment: trac_6371_riemann-theta-REPLACEMENT-PART3.patch.gz Minor last-minute bug. |
comment:39
I made a git branch from the patches, but it does not work. I have not tried to New commits:
|
Branch: u/chapoton/6371 |
Commit: |
Branch pushed to git repo; I updated commit sha1. New commits:
|
This comment has been minimized.
This comment has been minimized.
Branch pushed to git repo; I updated commit sha1. New commits:
|
Branch pushed to git repo; I updated commit sha1. New commits:
|
Branch pushed to git repo; I updated commit sha1. New commits:
|
Branch pushed to git repo; I updated commit sha1. New commits:
|
comment:48
A student will be doing a summer project towards getting Riemann theta functions, their directional derivatives, and characteristics into sage. Can we repurpose this ticket for that? |
comment:49
sure, good luck |
comment:50
sounds good to me |
This comment has been minimized.
This comment has been minimized.
comment:52
The work is done: https://github.com/nbruin/RiemannTheta I have for now published it as a separate pip-able package in the hope that makes it easier for non-sage developers to install it, use it, and comment on it, but eventually the proper place is probably within sage (it's not a lot of code and it's tightly bound to a lot of sage-specific functionality). So the question prior to making a branch for inclusion into sage:
Also, once it's in, where/how do we expose the functionality in the global namespace (if at all)? Note that the design is a little less ambitious than the cswiercz and no attempt is made to have an |
There is a need for another Riemann Theta (RT) beyond nbruin (nRT) because: b) for "Physics Applications", all what is needed a fast theta. For plotting 10^-3 is as good as 10^-100 c) Having a fast theta will open for us new roads to have better understanding of Abelian Varieties and their Jacobians. d) It is ESSENTIAL for laptops. If it is possible then why not?!. Third world researchers have no e) "If GOD had created one single function then it is the Riemann Theta." (Fanatic) Actually, We might need four new implementation RT.
The main implementation is to optimize the algorithm (based on M. Heil, Numerical tools for the study of finite gap solutions of integrable systems, Ph.D. =Maple code= =python code=
The main modification is to initialize the data out of the RT. I have 1) 2) and partial 3) not yet optimal. (Cupy sXs, and optimal gpu is not just cuda kernels) Khaled/Heliopolis/Cairo. |
In the theory of differential equations and Abelian varieties, Riemann theta functions and their relatives play an important role. Implement these in Sage!
See also:
A Sagemath package for evaluating Riemann theta functions
with characteristics numerically to arbitrary precision,
as well as their derivatives
CC: @cswiercz @fredrik-johansson @mstreng @jpflori @slel
Component: numerical
Keywords: riemann theta klein
Author: Nick Alexander, Chris Swierczewski
Branch/Commit: u/chapoton/6371 @
0342ce9
Reviewer: Marco Streng, Bernard Deconinck
Issue created by migration from https://trac.sagemath.org/ticket/6371
The text was updated successfully, but these errors were encountered: