I have for some time been very unsatisfied with the functions of the tool eval,
included in Amiga OS. I was hoping for an update in Amiga OS 3.5 but nothing
has been done to this tool.
Therefor I have written my own tool for mathematical evaluations.
The worst things about the old eval:
* It can't count! 1+2*3 should equal 7 not 9!! (no priorities?)
* No suport for binary numbers
* No support for decimal numbers
* Too few functions
* Not flexible enough to be userfriendly
* No bugfixes or upgrades are made from the developer
Ev is improved in theese areas and some other:
* The prioritys are correct! 1+2*3 = 7
* Ev supports all the old Eval input for compability reasons (except for e)
* Support for binary numbers added in input and output
* The constants pi and e added
* Support for decimal numbers added, both 0.1 and .1 are accepted
* Correct rounding of decimals
* New flexibility added with support for:
* the words and (&), or (|), not (~)
* both <<, >> and lsh, rsh (and l, r) for left/right shift
* d## and @d for decimal input and output
* several new ESC-codes in output (tab, bell, formfeed etc.)
* number of digits in octal and hexadecimal output is optional
* multiplication without '*'-token in obvious places
* reading expressions from a file or stdin
* multiple expression calculation, (see docs)
* variables
* Several new functions:
* absolute value (abs)
* square root (sqrt)
* faculty (!)
* powered numbers (^)
* trigonometric functions (sin, cos, tan, asin, acon, atan, sinh, cosh, tanh)
* random number (rnd)
* logarithmic functions (ln, log, log2, logx)
+ I will keep upgrading it if there is a need for that.
Downside of the new version:
* Bigger executable. I've used the tools bison and flex to create the parser
and theese tools do not create small files.
* Not 100% compatible with Eval, e does not mean eqv any more since the
number e=2.718281828...
From v1.2 the %n, %o and %x has changed to @n, @o and @x to make Ev
preform better in scripts, this means more compability to Eval is lost.
On the other hand it was Amiga Inc. who told me to make the changes so I
guess it's allright.
* The argument management seems to be different in some ways which seems
to have a negative effect on the behaviour of Ev in scripts. For example
the test script in the manual for OS 3.5 with Eval used as a counter will
not work with Ev. Other scripts I have seen works fine though.
I hope thats it.
|