Hello everyone! I'm interested in contributing/working on Sage a bit. Specifically, one of my Professor's came up with a faster way to compute q-digamma, at least in some cases. I would like to code it up and add it to Sage. A few things are in my way at the moment, that I wanted to ask about:
1. It appears we don't have a native q-gamma or q-digamma function. We do have access to q-gamma from mpmath. However, a wrapper function in Sage hasn't been added yet: https://trac.sagemath.org/ticket/19032 Would adding this be a simple as importing qgamma from mpmath? My worry in implementing it that way is about efficiency. If a user uses calls qgamma many times, then it would be doing "from mpmath import qgamma" many times, which seems pretty inefficient. Is there a more efficient way of doing this? So that it wouldn't keep importing it over and over, or maybe some way I could make it so that I don't have to important anything at all. I only ask if the latter is possible because when I was looking at the source code for the gamma function in sage (I believe it uses GiNaC?), I don't see it say "import gamma" anywhere. Does it not have to do that because GiNaC isn't in python? Also, is there a reason we don't use mpmath for the gamma function? 2. Going off of what I was talking about in question 1, how can I see the implementation of the gamma function? I'm looking at the source in sage/functions/other.py: https://github.com/sagemath/sage/blob/master/src/sage/functions/other.py but I can't see the code for the actual function. I just see that it calls something called gamma1, apparently. What is gamma1 here and where can I see the code for the actual function? It mentions that Gamma uses various libraries in sage, but it looks like it just uses gamma1(from ginac?) and gamma_inc. Is this correct? 3. The formula for q-digamma is for q = 1. Since we don't have an implementation of q-digamma as far as i can tell, I was thinking I would try to find a library with an implementation of it, import that, and then add the q = 1 case implementation as an if statement? And if I can't find a library with it, would it work okay to simply write the formula for it directly there? Or would that be slow because it's in python? I was thinking that since the code gets cythonized, the fact that I'd be writing it in python wouldn't be cause it to be slow. Sorry, these questions are fairly vague, and I'm not entirely sure whether this belonged in devel or support. However, I'd appreciate any advice/info you have! -- You received this message because you are subscribed to the Google Groups "sage-devel" group. To unsubscribe from this group and stop receiving emails from it, send an email to sage-devel+unsubscr...@googlegroups.com. To post to this group, send email to sage-devel@googlegroups.com. Visit this group at https://groups.google.com/group/sage-devel. For more options, visit https://groups.google.com/d/optout.