home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Otherware
/
Otherware_1_SB_Development.iso
/
amiga
/
misc
/
icalc.lzh
/
icalc
/
history
< prev
next >
Wrap
Text File
|
1992-01-26
|
3KB
|
105 lines
=============================================================================
icalc - a complex-number expression parser
by Martin W Scott
=============================================================================
Revision History
=============================================================================
Version 1.1a
------------
- The inverse trigonometric functions asin, acos, atan now return
values in the conventionally regarded PVR's. They should also
work all the time now (unlike in the last release).
- Fixed major bug whereby sqrt(z) didn't return values in the
correct quadrant for PVR of (-PI,PI]. Not only did this affect
the sqrt function, but also all functions defined using sqrt
(internally and in scripts), including inverse trig. functions.
- Addition of max and min functions, which take a variable number
of arguments and return respectively the value of the maximum
or minimum REAL part encountered.
- Addition of a time() builtin. This allows timings of operations
to be made. time(t) = current time - t.
- Addition of sgn() builtin, which returns the sign (-1,0,1) of the
REAL part of its argument.
- Modified definitions of int, floor, ceil to only act on REAL part of
their arguments, so to get floor of imag. part, say floor(Im(z)).
- Revised icalc.init file, with more definitions.
- Corrected stupid mistake in definition of polar(r,theta) function
in icalc.init.
Version 1.1
-----------
- Example script files modified. Now provided are:
icalc.init, which has many useful functions (startup-file);
trig.icalc, which contains less-used trig functions;
stat.icalc, one-variable statistical analysis.
You are strongly recommended to look at these for tips on how
best to use icalc.
- On startup, icalc will now read the file 's:icalc.init' if it
exists.
- Special function multi() added, which evaluates all its arguments,
returning the last one as its value. See docs and example scripts
for applications. Also added is print() builtin, for use
with multi().
- Special functions Sum(), Prod(), every() and vevery() now added.
The repeat construct has therefore been removed. (It was only
in there until I got around to adding this type of facility).
- Expressions and function definitions may now be continued on
the next line by use of a backslash '\'.
- Identifiers may begin with and contain underscores (and, as a
side-effect of the implementation, be composed entirely of
underscores).
- Multi-parameter functions now added.
- You can now declare functions that take no parameters, eg.
func total() = sum1 + sum2
- Listing of user functions improved: now shows parameter list;
However, I don't think it's worth writing out whole definition.
- Method of setting precision has changed: now use function
prec(digits), which returns ans (last computed result). Initially
set to 8.
- Added function int(z), which returns the real and imaginary parts
of z rounded to nearest integers; 0.5 rounds up.
- Added functions ceil(z) and floor(z), which operate separately
on the real and imaginary parts of their argument, in a similar
manner to int(z).
- Now has a prompt to avoid confusion.
- [ Real-valued functions are no longer computed internally as such. ]
- Removed debugging code accidentally left in with version 1.0.
Version 1.0
-----------
- Initial release.