[GiNaC-devel] [SCM] GiNaC -- a C++ library for symbolic computations branch, master, updated. release_1-4-0-659-gfa1ffcfd

Richard B. Kreckel kreckel at in.terlu.de
Wed Jun 17 23:40:41 CEST 2020


Hi!

On 17.06.20 20:13, Alexey Sheplyakov wrote:
> 17.06.2020, 21:54, "Richard B. Kreckel via GiNaC-devel" <ginac-devel at ginac.de>:
>> This is an automated email from the git hooks/post-receive script. It was
>> generated because a ref change was pushed to the repository containing
>> the project "GiNaC -- a C++ library for symbolic computations".
>>
>> The branch, master has been updated
>>         via fa1ffcfdc9da97a6fb7cc2c9c36fe1fc45c808a9 (commit)
>>        from 63453e8120d2e2eb9f1b836fc1b5651c2494ef1f (commit)
>>
>> Those revisions listed above that are new to this repository have
>> not appeared on any other notification email; so we list those
>> revisions in full, below.
>>
>> - Log -----------------------------------------------------------------
>> commit fa1ffcfdc9da97a6fb7cc2c9c36fe1fc45c808a9
>> Author: Pierangelo Masarati <pierangelo.masarati at polimi.it>
>> Date: Wed Jun 17 19:52:49 2020 +0200
>>
>>      Improve diff(abs(x)) for real x.
> 
> I think this patch is wrong and should be reverted.
> diff(abs(x)) does not exist at x -> 0.

Hmm, I had read your remark [1] as consent.

Without the patch, it evals |a|' → (a'*a)/|a| for real a.
If, then, one substitutes a→0, then it throws division by zero.
With the patch, it evals to a'*0. Okay, you do have a point.

On the other hand, a later substitution of a variable by a special value 
is not always consistently handled; just consider x/x → 1 or variants 
thereof. How does that compare to our situation here?

> Alternatively one can modify the definition of numeric::step() function [1]
> so it throws an exception when being evaluated at 0.

Well, remember that step(0)→½ is of course inspired from Fourier 
analysis and is tremendously useful in physics when doing contour 
integrals (principal value integration). Although this is not without 
alternatives [2], I'ld rather introduce another function than change step().

   -richy.

[1] https://www.ginac.de/pipermail/ginac-devel/2020-June/002464.html
[2] https://en.wikipedia.org/wiki/Heaviside_step_function#Zero_argument


More information about the GiNaC-devel mailing list