rCalc modification: using user-defined functions in rCalc 0.3.7
rCalc is a very good symbolic
calculator, very simple to use and it can be very useful when doing many
calculus, especially thanks to variables.
However, in two years of use, I felt the lack of a feature I really need:
the ability to create my own functions.
For exemple, create a function f that does f(x) = 2*x*x + 7*cos(x)
- abs(x)
Then, it would just give you the result for x=2 when typing f(2), for example,
and it would speed up your work when you need to do several calculus with
the same function.
So I made this quick (and I'm sure, dirty) patch that enables you to:
- create functions: func <function_name>(x)=<your_function>
(example: func g(x)=2*x)
- list ALL the functions (that is, the ones you have created and the built-in ones): ls functions (or just ls
func)
- use the function: function_name(mathematical_expression)
(example: g(cos(5*2 - 10)) or just g(1)
)
- remove an existing function: rm function_name (just
like you remove variables)
- the functions are saved in ~/.rcalc/ and are automatically
reloaded at startup
The functions are in fact a .c file compiled to a .so and dynamically linked
to the executable, all this when the func command is called. Therefore:
- you need a working gcc installed
- the functions take a little time to compile when you use the func
command (but it's usually less than 1 or 2 second)
- once the function is compiled, the call to the function and the calculus
is very fast, since the code is compiled.
- syntax errors are automatically detected by compiler and/or linker, and
prints message inside rCalc (see screenshot for the 2 error messages that
are possible).
See this screenshot for these functions
in action.
Download the patch. (this patch
is against rcalc 0.3.7)
Apply it like this (for example) :
~/rcalc-0.3.7$ zcat ../rcalc-0.3.7-functions.patch.gz | patch -p1
-E
Clément Bourdarias, last modification: June, 19th 2002.