[GiNaC-devel] Bug fixes for polylogs
Stefan Weinzierl
stefanw at thep.physik.uni-mainz.de
Sun Jan 12 10:10:39 CET 2014
Hi,
attached is a patch, which fixes several bugs in the file
inifcns_nstdsums.cpp.
The bugs have been reported to me by Christoph Meyer and Andreas von
Manteuffel.
In detail, the bugs and its fixes are:
- The method Li_projection of the classical polylogs calls the
cln-function log(1-x).
We better avoid calling this function with x=1.
- The method mLi_numeric calls G_numeric, G_numeric expects the signs of
the imaginary parts
to be set correctly, so we do this.
- In the methods G3_evalf and G3_eval the user supplied signs of the
imaginary parts are only relevant
for x real and positive. A negative sign in the case of x real and
negative is irrelevant (there is no
branch cut) and led to wrong results. This is now avoided.
- The method S_num within the Nielsen polylogs can lead to an infinite
recursion if the argument is close to the sixth root of unity or
its conjugate. In more detail, the region abs(value)<=1 &&
abs(value)>0.95 && abs(1-value)<=1 && abs(1-value)>0.95
used to be mapped infinitely times onto itself. This is now avoided.
This however reveals the next problem: The numerical convergence in this
region is very slow.
Within the Nielsen polylogs there is no transformation available to
improve the convergence.
However we can use the (1-x)/(1+x) transformation within the harmonic
polylogs.
In order to avoid another infinite recursion I have inserted a few
hold()'s in the method H_evalf, otherwise we would fall back
immediately again to Nielsen polylogs. The hold()'s should have been
there anyway.
Not included in this patch are workarounds for bugs caused by first
comparing a complex floating number against +/-1, and in the case of
equality
using the operator < later on. This is logically correct and better fixed
in cln.
Best wishes,
Stefan
-------------- next part --------------
A non-text attachment was scrubbed...
Name: polylog.patch
Type: text/x-diff
Size: 4929 bytes
Desc:
URL: <http://www.ginac.de/pipermail/ginac-devel/attachments/20140112/a0d98bc4/attachment.bin>
More information about the GiNaC-devel
mailing list