Release calc version 2.10.3t5.45

This commit is contained in:
Landon Curt Noll
1997-10-04 20:06:29 -07:00
parent 4618313a82
commit 6e10e97592
300 changed files with 38279 additions and 8584 deletions

View File

@@ -32,7 +32,9 @@ Needed enhancements
* Figure out how to write all variables out to a file, including
deeply nested arrays, lists, and objects.
* Implement pointers.
Add the ability to read and write a value in some binary form.
Clearly this is easy for non-neg integers. The question of
everything else is worth pondering.
* Eliminate the need for the define keyword by doing smarter parsing.
@@ -42,9 +44,6 @@ Needed enhancements
* Add some kind of #include and #define facility. Perhaps use
the C pre-processor itself?
* Allow one to undefine anything. Allow one to test if anything
is defined.
* Support a more general input and output base mode other than
just dec, hex or octal.
@@ -137,39 +136,6 @@ Needed enhancements
could save the result of cmdnum() in a variable and later use
it as an arg to the histval() or history() functions.
* Add a builtin to determine if an object as been defined.
For example:
isobjdef("surd")
would return true if one had previously defined the
surd object. I.e., if "obj surd {...};" had been
executed.
One cannot redefine an object. If a script defines an object,
one cannot reload it without getting lots of already defined
errors. If two scripts needed the same object, both could
define it and use isobjdef() to avoid redefinition problems.
* Add a builtin to determine if a function as been defined.
For example:
isfunct("foo")
would return true if foo has been defined as a function.
* Permit one to destroy an object.
What if one does want to redefine an object? Consider the case
where one it debugging a script and wants to reload it. If
that script defines an object you are doomed. Perhaps
destroying a object would undefine all of its related functions
and values?
* Add NAN (Not A Number) to calc. Where is it reasonable, change
calc to process these values in way similar to that of the IEEE
floating point.
* Add a factoring builtin functions. Provide functions that perform
multiple polynomial quadratic sieves, elliptic curve, difference
of two squares, N-1 factoring as so on. Provide a easy general
@@ -202,32 +168,12 @@ Needed enhancements
fold output. Another option should be to append a trailing
\ on folded lines (as some symbolic packages use).
* Add the ability to read and write a value in some binary form.
Clearly this is easy for non-neg integers. The question of
everything else is worth pondering.
* Allow one to use the READ and WRITE commands inside a function.
* Remove or increase limits on factor(), lfactor(), isprime(),
nextprime(), and prevprime(). Currently these functions cannot
search for factors > 2^32.
* Make the cryrand functions, or some useful subset builtin
functions. This is needed for speed reasons.
The additive 55 / shuffle generators in cryrand.cal have
been turned into the rand() builtin function. The main
crypto / Blum-Blum-Shub generators still need to be
converted into builtin functions.
* Add a builtin to generate random primes using methods suggested
by Ueli M. Maurer: "Fast Generation of Prime Numbers and
Secure Public-Key Cryptographic Parameters" 9 Sep 1991.
Such a builtin would be useful to generate large primes.
* Be sure that regress.cal tests every builtin function.
* Add read -once -try "filename" which would do nothing
if "filename" was not a readable file.
@@ -250,3 +196,42 @@ Needed enhancements
at by 'fizbin' and the HALF array pointer at by 'data' should be
treated as read-only.
* Blocks should have the following features:
+ read/write to/from files (ala fread/fwrite)
+ misc memory functions (ala memcpy, memcmp, memset,
memchr, etc.)
+ scatter and gather functions (to send every n-th octet
to another block and to copy from n blocks, the 1st
then 2nd then 3rd ... octets)
* Printing of blocks should be under the control of the
config() interface. This should allow one to select
from any of the following formats:
+ as one long string
+ as a series of lines (< 80 chars wide)
+ in od command style (offset: value value value ...)
+ in hex dump style (offset: val val val val ... 3hf.Uas.c)
* In addition one should be able to control the following
aspects of printing blocks via the config() interface:
+ base (hex, octal, char, base 2)
+ amount of data (the first n octets or the entire block)
+ skipping printing of duplicate print lines (ala od)
+ have the ability to print the block as raw data
* It is overkill to have nearly everything wind up in libcalc.a.
One should make available a the fundimental math operations
on ZVALUE, NUMBER and perhaps COMPLEX (without all of the
other stuff) in a separate library.