From: Dimiter P. <dim...@gm...> - 2014-04-27 12:20:51
|
Dear list, here is the latest update in the Fourier transform package: https://github.com/dprodanov/maximaft Use: main functions: ft(expr, t, f) ift(expr, f,t) simplification switch: expandft (true/false) auxilliaries: ev_ft(expr), _rect(t,T), _triang(t,T), _sinc(t, T), _step(t) special functions: unit (t), sinc(t,T), rect(t,T), triang(t,T) Due to the peculiar function declaration/ evaluation mechanism of Maxima if you want to evaluate an expression containing special functions (i.e. plot) you have to use ev_ft(expr) or directly call an uxilliary function. Testing and comments are welcome. best regards, Dimiter |
From: Robert D. <rob...@gm...> - 2014-04-29 20:15:34
|
On 2014-04-27, Dimiter Prodanov <dim...@gm...> wrote: > here is the latest update in the Fourier transform package: > > https://github.com/dprodanov/maximaft Thanks for the update. I have a few comments. * A list of pairs of tests cases and expected results would be helpful. * I think the names should be spelled out, as ft and ift are too easily lost in a namespace of about 2000 symbols. How about fourier and inverse_fourier. (Yes, I know there is already ilt for the inverse Laplace transform. It is an unfortunate name which we need not imitate.) There is already a function named fourier in share/calculus/fourie.mac but maybe that one should be renamed (to fourier_coefs or something). * I wonder if the symbols FT and IFT are needed internally. They seem to play the same role as noun operators. Can we express the rules in terms of 'fourier(...) and 'inverse_fourier(...) expressions? * Maybe you can explain the advantage of the _foo(t) / foo(t) system. I don't see that it's any simpler than 'foo(t) / foo(t), which is already well-known in Maxima. * I see the implementation has a lot of explicit part hacking. I've tried to show how to use the rule system to handle the stuff which otherwise is handled by part hacking. If there is something that doesn't seem to work, let's have a look at it and fix the problem, instead of resorting to part hacking. Thanks for your work on this topic, I appreciate it. best, Robert Dodier |