-
-
Notifications
You must be signed in to change notification settings - Fork 4.3k
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
[Enhancement] Adding the Super Square-Root (ssrt(z)), The 2nd Tetration of x (exp_x(2), x^x), Infinite Power-Tower (exp_z(oo)), and Infinite Super-Root (srt_oo(z)). #22411
Comments
It seems reasonable to add these. There should be some control over when they evaluate to avoid generating extremely large numbers. Presumably mpmath can be used to compute these functions if they are expressed in terms of Take a look in |
Absolutely. This will be helpful: https://github.com/sympy/sympy/wiki/Development-workflow |
Agreed. Do you have a number in mind?
Thanks, I was looking for this.
Yes. Mpmaths's |
No but maybe these functions should not evaluate by default i.e. you need to call |
I don't know; I think the |
Extremely small numbers are problematic as well. Make sure you save all of your work etc before running this code because you might not be able to interrupt before it consumes all the memory in your system forcing a hard reboot: In [12]: S(0.1)**S(10.0)**S(10.0)**S(10.0)
^C^C^C^C^C^C^C
KeyboardInterrupt |
Even doit shouldn't evaluate when it comes to numbers that cannot possibly fit in memory. There can be a separate function that tries to evaluate it for users who really want to try. |
Infinite Super-Root approaches 1 so it'll be fine. |
Also, I've decided I'll make the (at least primitive) pull request. |
This is closely related to #6835. Any sort of power tower object, whether it's an explicit object for tetration or just nested |
I think we need two functions for something like tetration:
Then symbolic tetration functions will never evaluate by default and there should be routines for handling in that form. I'm wondering also whether tetration should just be implemented as a special case of a hyperoperation though: https://en.wikipedia.org/wiki/Hyperoperation |
Apparently there's not a single common notation used for hyperoperation https://en.wikipedia.org/wiki/Hyperoperation#Notations. I would suggest using Knuth arrow notation as that's the notation I've seen used most often. Although I would also suggest only implementing such generalizations if there are actual symbolic things that could be computed on them, like some simplifications or some such, or if they can be the result of some other operation. Otherwise we would just have a way of representing such functions but nothing else that we could really do with them. |
Tetration help PDF: https://math.osu.edu/sites/math.osu.edu/files/chun_tetration.pdf
|
That looks broadly like a good plan but I'm unclear on some things. Everything there looks like something that should be added but there are always details to be worked out. I suggest starting with the part that is smallest and most useful and then opening a PR for that first. Then we can discuss the details of that and once that is merged we will all have a clearer idea how to implement the rest. |
Ok, I am sorry about this post—it was rushed. The later issues in the post are going to be confusing really no matter what until the previous ones are solved.
I whole heartedly agree. This is slightly different from my plan but after this I will modify it. UPDATE: I'm slowly working on that first issue's PR. It is going to be a little while but I have good progress so far. I have hit a small wall though where I have to conduct my own research to give a good definition of the function to SymPy. (This may be an something to be ignored until more research comes out—we are one of the few projects that are dipping into this pool.) |
There's no rush. We can also discuss the issue around definitions here. |
Ok great! I'll compile and insert a list after I'm done roughing them all out. |
I think some—at least primitive—support for these functions are due. They do have simple enough closed solutions.
Allow me to give so definitions (For the guy browsing in 3045 ;)):
Tetration:
Super Square-Root, the inverse of Tetration with respect to the base (Note: There are two real branches for this function. Here
Infinite Power-Tower:
Infinite Super-Root:
(Note: xx has been fairly studied compared to tetration as a whole)
Reasons to implement:
Questions:
-H.V.
The text was updated successfully, but these errors were encountered: