Li_eval(): avoid the "numeric::operator>(): complex inequality" exception.
authorStefan Weinzierl <stefanw@thep.physik.uni-mainz.de>
Tue, 28 Jan 2014 06:58:06 +0000 (08:58 +0200)
committerAlexei Sheplyakov <Alexei.Sheplyakov@gmail.com>
Tue, 28 Jan 2014 07:02:32 +0000 (09:02 +0200)
commit5acfced77964d811d66f83e83b8fa06d77f3edd0
tree6aea1a2e0190774b9ed6a509faa4d24d76667fa5
parentff604e21b9108236522fb59ba5f72ba1b88b374e
Li_eval(): avoid the "numeric::operator>(): complex inequality" exception.

Basically the problem is that 1 + 0.0*I is equal to 1, but checking if
the former is positive results in the the "numeric::operator>(): complex
inequality" exception. This behavior is definitely inconsistent and should
be fixed.

As a work around teach Li_eval and convert_parameter_Li_to_H to explicitly
convert 1 + 0.0*I to 1 (and -1 + 0.0*I to -1, respectively).

[Alexei Sheplyakov: comment the code a little bit, otherwise it looks weird]
ginac/inifcns_nstdsums.cpp