Sorry, I hit send before I was quite ready. To continue ... On 13 November 2014 19:24, Ondřej Čertík <ondrej.cer...@gmail.com> wrote: > On Thu, Nov 13, 2014 at 2:00 PM, Ondřej Čertík <ondrej.cer...@gmail.com> > wrote: > ... > For example, for |z| we get: > > |z|' = \partial |z| / \partial x = d |z| / d z + d |z| / d > conjugate(z) = conjugate(z) / (2*|z|) + z / (2*|z|) = Re(z) / |z| > > Using our definition, this holds for any complex "z". Then, if "z" > is real, we get: > > |z|' = z / |z| > > Which is exactly the usual real derivative. Bill, is this what you > had in mind? That a CAS could return the derivative of abs(z) > as Re(z) / abs(z) ? >
Yes, exactly. I think a question might arise whether we should treat conjugate or Re as elementary. >> ... >> What are the cons of this approach? >> First, care needs to be taken to properly extend the chain rule to include the conjugate Wirtinger derivative where necessary. Second, in principle problems can arise when defining a test for constant functions. For example this is necessary as part of rewriting expressions in terms of the smallest number of elementary functions (normalize) as a kind of zero test for expressions in FriCAS/Axiom. Usually we assume that df(x)/dx = 0 is necessary and sufficient for f to be a constant function. But requiring that the total derivative d f / d z + d f / d conjugate(z) = 0 is not what we mean by constant. In fact it seems to be an open question whether Richardson's theorem can be extended to include conjugate as an elementary function in such a way that the zero test is still computable. This is the last point of discussion on the FriCAS email list. Bill. -- You received this message because you are subscribed to the Google Groups "sage-devel" group. To unsubscribe from this group and stop receiving emails from it, send an email to sage-devel+unsubscr...@googlegroups.com. To post to this group, send email to sage-devel@googlegroups.com. Visit this group at http://groups.google.com/group/sage-devel. For more options, visit https://groups.google.com/d/optout.