Version w/date 06-06-2009:

Sub 'Mult p, q, r' returns its result in r now,
leaving p unchanged. Added wrappers 'Lmul p, q' and 'Ldiv p, d'
to return results in left argument p.

Note the appearance of the $LANG "qb" metacommand in place of
the module-level DEF###'s. Using the new __FB_LANG__ define,
the largeint.fbi and QB-compatible largeint.bi include files
(see 01-15-2008 below) could be merged into one.

Removed BYVAL keywords from largeint.bas, trusting FB has its
defaults settled now. Put DEF###'s in the QB-compatible include,
so that explicit INTEGER and LONG argument types could be removed.

Replaced all 'ByVal arg AS STRING' occurrences (passing string
address) with 'arg AS ZSTRING PTR' (more accurately reflecting
the actual goings on).

Fixed Logf(p) bug: used only 45 largeint bits,
sub 'Printr p, q, f, k' prints in exponential format now,
rewrote PowrMtrx.bas, and BigLog.bas as Log_Exp.bas.


date 01-06-2009, FB version 0.20.0 (aug. 2008):

Rewrote the library in a simpler, more flexible form.
The size of the largeint number array is set at 95 Kb,
length and sign are both encoded in the initial word,
the sign of a negative number is now -32768, else zero,
internal constants are moved from the include file to LargeInt.bas
changed array i() type INTEGER to SHORT PTR for leaner binaries.

Added integer functions Divint(p, a) and Odd(p),
stripped argument d from function Kronec(p, q, d),
also 5th argument h from sub 'Printr p, q, r, f, h',
renamed subroutine 'Copyf p, q' to 'Dup p, q', also the
Gete/ Sete pair to Getw/ Setw in both library and modules,
removed 'Dcr p, a', as 'Inc p, a' has signed argument a now,
sub 'Isqrt p, q' doubles root length each iteration step,
sub 'Bezout p, q, d' gives shorter return values,
and function Nxtprm(sw) is 3 times reentrant.


date 01-15-2008, FB version 0.18.3 (dec. 2007):

Added subroutine Work.

In the library changed LONG to INTEGER, INTEGER to SHORT
to be compatible with the modules' -lang qb 16-bit INTEGER's.
Memory is used more economically now, the drawback is that -lang qb
doesn't recognize SHORT, so the project needs two include files:
largeint.fbi for building the library, largeint.bi for
compiling the QB-modules and linking with liblargeint.

This material cannot be compiled with previous FB versions.


date 05-05-2007, FB version 0.17b:

In the library all variables are explicitly declared now;
moved DEF###'s to the modules.

The library must be compiled in default fb-mode,
all modules must be compiled with the '-lang qb' option.

Added constant Asize in include-file largeint.bi to set number array memory usage.


date 01-30-2007, FB version 0.16b:

The library uses ByVal-strings now, instead of ByRef Byte-pointers,
so you'll have to recompile every existing FB largeint module that
calls the new liblargeint.

Also, the module names are all-lowercase now,
which should facilitate using this package under Linux.

Changed the name of subroutine 'Init()' to 'LargeInit()'

Removed subroutines Andf, DecLSB, Pwr2, Pwr10

Added subroutines
 Absf%, Bezout, Bitl%, Boolf, Gcd, Lcm, Logf#, Mp2%, Powr, Triald, EnQ, ExQ%

Fixed a bug in function Kronec%

Rewrote SquFoFac.bas, EllCrvFr.bas, PrimRoot.bas and TrialDiv.bas using the new Sub's.

Rewrote Genrator.bas, Encoder.bas and Decoder.bas to comply with laboratory standards.


S.J.S.