[GiNaC-list] conjugates of power objects
burcin at erocal.org
Thu May 6 05:16:01 CEST 2010
I attached a patch with my attempts to solve this problem. It is based
on the latest version of pynac. I hope it applies cleanly to GiNaC as
On Mon, 3 May 2010 17:50:44 +0200
Burcin Erocal <burcin at erocal.org> wrote:
> On Fri, 30 Apr 2010 09:06:03 +0200
> "Richard B. Kreckel" <kreckel at ginac.de> wrote:
> > Alas, I think that automatic evaluation of conjugation is too
> > aggressive in GiNaC. It just keeps giving incorrect results on
> > branch cuts. Here are some examples, using ginsh:
> > > conjugate(sqrt(x));
> > sqrt(conjugate(x))
> > > conjugate(sqrt(x))-sqrt(conjugate(x));
> > 0
> > > conjugate(sqrt(-1))-sqrt(conjugate(-1));
> > -2*I
> > > conjugate(log(x));
> > log(conjugate(x))
> > > conjugate(log(x))-log(conjugate(x));
> > 0
> > > conjugate(log(-1))-log(conjugate(-1));
> > -(2*I)*Pi
> > I suggest to disable automatic evaluateion of conjugation where
> > these kinds of problems can appear.
> > Opinions?
> I agree that the automatic evaluation should be disabled for most
> cases. I don't immediately see a good definition for these cases
> though, but then I am not knowledgeable in this area at all.
For some time now, pynac doesn't automatically evaluate conjugates of
This prevents the problems with log() above.
> Maple seems to convert sqrt(-3) to sqrt(3)*I automatically:
> > sqrt(-3);
> 3 I
> Perhaps adding this automatic evaluation rule for power objects would
> simplify the conditions we need to consider for automatic evaluation
> of conjugation.
Attached patch adds a rule to power::eval() to transform ^(-c1, c2) to
*(^(-1, c2), (c1, c2)) when c1 and c2 are both rational. I got this
idea from maxima. I also restrict the automatic conjugation unless the
basis is real and the exponent is a rational, returning *this in this
This seems to give an acceptable response to conjugate(sqrt(-3)):
-------------- next part --------------
A non-text attachment was scrubbed...
Size: 1511 bytes
Desc: not available
More information about the GiNaC-list