home *** CD-ROM | disk | FTP | other *** search
- =============================================================================
-
- 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.
-