complex conjugation

Chris Dams chrisd at
Thu Dec 18 14:38:01 CET 2003


On Tue, 16 Dec 2003, Jens Vollinga wrote:

> The digestion of your contribution took a while, because the complex
> conjugation of some functions (harmonic and multiple polylog) is a bit more
> involved, and I wanted to think of a solution to this before integrating
> the patch.
> In doing so I recognized the following:
>   sin(x).conjugate() gives sin(x) ?!
> or simpler
>   x.conjugate() gives x ?!
> if x is symbol.

This issue is discussed in and follow-ups. An
alternative to assuming all symbols to be real would be to have a global
map (perhaps attached to the class symbol) that maps symbols to their
complex conjugates.

> This seems to be a fundamental problem in my view. A possible solution
> would be not to use a virtual function '.conjugate()', but instead to
> use a Ginac-function 'ex conjugate(const ex&)', that only evaluates for
> numerics and gamma matrices. This would also ease my headaches with those
> polylogs ...

I must say I am totally new to polylogs. Looking at their definition, I
notice that they have a convergence radius of 1. Also the documentation
says that they can only be evaluated numerically for arguments x_i with
|x_i|<1. I only see problems for complex conjugation at branch cuts for
|x|>1 (and only at the real axis I would guess). This is the same problem
that was discussed in the aforementioned thread for the log. Therefore I
still think that complex conjugating arguments would be best for these
functions, or do you know of other problems with cc-ing these functions?

Good day,

More information about the GiNaC-devel mailing list