An adaptation for the 32/64-bit Linux/Windows XBasic 6.2.3 language.
The packet includes the library source code with a precompiled
BigNumXB.dll and 33 selected modules together with sample inputfiles.
Version w/date 06-06-2009:
Function 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.
Renamed function Decf(p) to Bufl(p) for (string)bufferlength,
function CnvSt(@g, p) needs largeint p as second argument.
Function Isqrt now uses the binomial (Ibn al-Banna) algorithm,
a third argument is added to return residue p - r^2.
Rewrote Ratdec(@g, p, q) as RatCnv(@g, p, q, b), where
b is added to expand p / q in any base from 2 through 17,
the string of base b-digits is in exponential format.
Function Printr(p, q, f, k, sw) has a CrLf-switch added.
Function Readst(p, g) also accepts hexadecimal string g now.
Added function LibErr() to handle run-time error codes.
Fixed Logf(p) bug: used only 45 largeint bits.
Added modules Bench.x, Bernoull.x, LLL_Hnf.x,
PowrModC.x, PowrMtrx.x, Transcnd.x and Pmpqs.x
date 01-06-2009:
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.
Stripped argument d from function Kronec(p, q, d),
also 5th argument h from function Printr(p, q, r, f, h),
renamed function 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,
function Isqrt(p, q) doubles root length each iteration step,
function Bezout(p, q, d) gives shorter return values,
and function Nxtprm(@sw) is 3 times reentrant.
Added functions Divint(p, a), Odd(p), Work(@f) and module Goldbach.x
date 05-05-2007:
Added module SquFoFac.x, rewrote CnFcRoot.x
Added constant $$Asize in include-file bignumXB.dec to set number array memory usage.
Function 'LargeInit(SLONG k, STRING f)' must now be explicitly called
with k = number of largeint's in your program.
The size of the number array in the precompiled bignumXB.dll is set at 500 Kb,
giving a maximal decimal number length of approximately 577500 \ (k + 5) digits.
date 01-30-2007:
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 EllCrvFr.x using some new sub's, added modules TrialDiv.x, MASH-1.x
Rewrote Genrator.x, Encoder.x and Decoder.x to comply with laboratory standards.
S.J.S.