Hi, sorry for the late reply. Emanuele Bagnaschi schrieb:
First, G-functions currently evaluate numerically only for real arguments y >= 0.
yes. But I have my doubts that "improving" this is really helpful for practice.
Secondly, in the tutorial is written that there's no support for compiling expressions containing polylogarithms to C function pointers.
True. This is badly missing. GiNaC should be able to generate a C function that numerically evaluates a specific polylog in double precision and whose name would be used in expression output. One reason for not having implemented this yet is a principle problem of the code, see below.
Finally, I see that there are some "TODO" comments in inifcns_nsdsums.cpp which describe missing features.
Yes, but a lot of them are not that urgent, I think.
I'm also open to any other suggestions. All comments are welcome.
Two more issues (which are the most urgent in this): - Multiple polylogs with roots of unity as arguments (x1,x2,...) produce for certain weights (m1,m2,...) wrong numeric results. There is still a bug in the transformations. I would have to look a while for the details. But while it is probably of no consequence for physics applications, it is still a bad bug and needs to be fixed. - The code is badly written. It mixes purely algebraic operations (transformations) with numerics while using a (prematurely ...) optimized representation of the arguments. This had and has three consequences: bugs like above are very hard to catch, generating C functions for compiled expressions is very difficult because the formula used in the end for the numerics is not available to the outside as a whole (i.e. other functions managing the expression compilation), and thirdly the functionality of just asking a polylog what its so and so transformation would yield is not available to the user (there are other nice math packages that offer this). Regards, Jens