Hi Richard, Vladilmir, f(z) = conjugate(z) is non-holomorphic (on the whole C-plane) and so, its derivative ill-defined. Don't you think so ? Luis ----- On 11/06/2013 03:52 AM, Vladimir V. Kisil wrote:
Dear Richard,
On Wed, 06 Nov 2013 00:36:01 +0100, "Richard B. Kreckel"<kreckel@ginac.de> said: RK> Still, I'm not convinced that the general transformation RK> conjugate(f)' -> conjugate(f') is generally correct. Is it correct even on branch RK> cuts? If you have a prove, please try writing it in your patch RK> so this will be clear to people reading this section later on.
Thanks, for pointing this out. Indeed, U'-I*V' is the value for both conjugate(U+I*V)' and conjugate( (U+I*V)') iff we differentiate with respect to a *real* variable. So, this check shall be added to the patch.
For a complex variable z the correct substitution would be:
conjugate(f).diff(z) -> conjugate(f.diff(z.conjugate()))
But there are two problems here:
* (minor) presently GiNaC does not allow diff() for anything but symbols and z.conjugate() is not a symbol. Shall we allow such derivatives?
*(major) presently GiNaC for e=z.conjugate(); cout<< e.diff(z)<< endl; returns D[0](conjugate)(z) and the correct answer IMHO is 0. Shall this be amended?
Best wishes, Vladimir