[GiNaC-devel] Bug fixes for polylogs
Alexei Sheplyakov
alexei.sheplyakov at gmail.com
Sat Jan 18 16:07:42 CET 2014
Hi, Stefan,
Thanks for an explanation.
I've got a few objections regarding the patch. I think handling the
complex numbers with
the imaginary part being floating-point zero should be done in
zeta2_evalf() rather than
to Li_eval(). The point is that (multiple) zeta values can appear not
only as a result of
polylogs evaluation.
Also this kind of syntax
+ for (lst::const_iterator itx = x.begin(); itx != x.end(); ++itx)
newx.append( *itx != _ex_1 ? 1 : -1 );
often gives rise to obscure bugs (C++ gives you enough rope to hang yourself),
please avoid that. Use the following instead:
for (lst::const_iterator itx = x.begin(); itx != x.end(); ++itx) {
newx.append(*itx != _ex_1 ? 1 : -1);
}
Also could you please make a few test cases so the bug won't be re-introduced in
the future (by changes in other parts of GiNaC, or CLN, or whatever)?
Thanks a lot,
Alexei
More information about the GiNaC-devel
mailing list