[GiNaC-devel] Implicit derivation of functions (re-submission)
Vladimir V. Kisil
kisilv at maths.leeds.ac.uk
Wed Oct 29 11:25:27 CET 2014
Dear All,
I am resending the patch for implicit derivation of
functions. Quote from the previous submission:
http://www.ginac.de/pipermail/ginac-devel/2013-November/002053.html
" I wish to propose another GiNaC extension. Consider function
abs(). Since it can be presented as abs(z)=sqrt(z*z.conjugate()), the
derivative of abs(f) may be calculated as
(abs(f))'=(f'*f.conjugate()+f*f'.conjugate())/2/abs(f)
However, this formula cannot be packed into the present GiNaC code,
since it only knows about the chain rule. Thus, the patch adds a
possibility to define derivatives of functions in some general
expression. In particular, the above derivative of abs() is
defined. Example:
cout << abs(log(z)).diff(z) << endl;
// (before) -> D[0](abs)(log(z))*z^(-1)
// (now) -> 1/2*(z^(-1)*conjugate(log(z))+log(z)*conjugate(z)^(-1))*abs(log(z))^(-1)
"
This issue independently appeared in this discussion:
http://www.ginac.de/pipermail/ginac-devel/2014-April/002106.html
If it is not included in the core code, then a user need to redefine
the entire GiNaC function class to have this feature.
Best wishes,
Vladimir
--
Vladimir V. Kisil email: kisilv at maths.leeds.ac.uk
-- www: http://maths.leeds.ac.uk/~kisilv/
-------------- next part --------------
A non-text attachment was scrubbed...
Name: 0001-Implicit-derivation-of-functions.patch
Type: text/x-diff
Size: 8522 bytes
Desc: patch file
URL: <http://www.ginac.de/pipermail/ginac-devel/attachments/20141029/6c9c40e9/attachment.bin>
More information about the GiNaC-devel
mailing list