[GiNaC-devel] Bug fixes for polylogs

Stefan Weinzierl stefanw at thep.physik.uni-mainz.de
Fri Jan 17 09:22:08 CET 2014


Hi Richy,

the method Li_eval checks if all entries of x_ are equal to +1 or -1.
In this case, the function Li is converted to a multiple zeta value.
If all but the first entry of x_ are equal to +1 or -1, the function
Li is converted to a harmonic polylog H.
After checking that an entry of x_ is equal to +1 or -1, the operator > is 
used. This may lead to an "numeric::operator>(): complex inequality" 
exception in the case where the real part of an entry of x_ is equal to 
+/-1 (either exact or as a float, this does not matter) and the imaginary 
part is equal to zero as a float.
The attached patch avoids the improper use of the operator > in this 
cases and sets the +/-1 arguments of H and zeta as real numbers.
For zeta the method Li_eval is modified, for H the appropriate place is 
a modification of the method convert_parameter_Li_to_H.

  Best wishes,

    Stefan



-------------- next part --------------
A non-text attachment was scrubbed...
Name: polylog2.patch
Type: text/x-diff
Size: 959 bytes
Desc: 
URL: <http://www.cebix.net/pipermail/ginac-devel/attachments/20140117/3c89bd5b/attachment.bin>


More information about the GiNaC-devel mailing list