[GiNaC-devel] GiNaC and polylogarithms
jensv at nikhef.nl
Tue Oct 6 21:32:41 CEST 2009
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
> 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,
> 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).
More information about the GiNaC-devel