Welcome to Wolfgang Ehrhardt’s home page!
News
-
Unit AMath V2.42 with
the new functions: Total variance tvar/x, signalling NaNs;
changed: Bitmask names of single exceptions compatible to DAMath.
-
Special Functions V1.50.18
with the new functions:
Euler polynomials, Bessel polynomials, logarithm of Barnes G,
exponential integral beta, incomplete gamma function igamma(n,x),
partial x-derivative of P(a,x);
changed functions:
Exponential integral E_n for n <0 and x > 0,
implemented max. iteration check in some elliptic integral functions,
fix return type of M_EllipticPiC, more NaN/Inf checks.
-
Updated multi precision arithmetic package MPArith 1.38.10 with
-
AMath archive including
unit AMath V2.38 with
SafeDivX (safe division), CoeffVar/X (coefficient of variation),
interfaced sqr12x; improved intpower.
Special Functions V1.49.03
with relative exponential of order n, hypergeometric function 2F0.
-
64-bit compatible DAMath archive with
the units DAMath V1.06,
Special Functions V1.34.02,
and an improved PurePascal version.
of ldexpd.
-
Util and
std.zip archives with the standard include file std.inc V1.70,
defining HAS_FP_CAST (typecast for floating point available, e.g. double(1)).
- New functions:
Simulated ASX for 64-bit, const PINC for default precision elevation;
- Changed functions:
frexpx/ldxepx only if not EXT64, prime32 uses doubles,
mpf_??_ext changed to mpf_??_dbl, mpc_??_ext changed to mpc_??_dbl,
s_mp_ln/log2 return double;
- Other: some manual precision adjustments.
-
The basic introduction and the multi precision
calculators t_calc and
t_rcalc are updated.
- New functions: mp_reverse (reverse mp_int in any base),
mpf_cell1, mpf_cell2, mp_calc (with _EE, _EK, _ASS)
- Changed functions: Renamed mp_base.mp_reverse to s_mp_reverse
- Other: mp_calc with input in base 2 .. MaxRadix
- Bugfix: s_mpr_cmp_mag if a=0
-
Updated AMath archive and accompanying introduction:
-
The 64-bit compatible DAMath archive with
the units DAMath V1.00,
DAMCmplx V0.56,
DAMTools V0.46,
and Special Functions V1.32.07
has essentially the same updates as AMath. Unit DAMath additionally
contains a bug-free frac function for FPC 3.1.1/64-bit.
-
Note for FreePascal users:
The errors with FPC 3.1.1-r20:38296_[2018/02/21] are corrected: The bad FPC design decision to evaluate constants like 2.0/9.0 in single precision,
is fixed by using integer(!) quotients like 2/9 (hoping this will stay correct in future versions).
The broken frac function for 64-bit will be fixed in upcoming FPC snapshots
(see https://bugs.freepascal.org/view.php?id=33635),
until then DAMath defines its own frac function for FPC64/311.
-
Some broken links in the basic MPArith introduction
are fixed.
-
Special Functions V1.47.15
with the new functions:
Weierstrass elliptic functions and inverses,
Klein invariant, modular lambda function,
Mathematica style incomplete elliptic integrals;
changed functions:
sfc_el2 is computed with Carlson functions,
changed argument check in sfc_ell_rd;
-
Units
AMath V2.29,
AMCmplx V0.97, and
AMTools V0.45
contain fixes for problems with FPC 3.1.1.
-
AMath archive with
Special Functions V1.46.15
(new functions: Integrals of zero-order Bessel functions,
EllipticPiCim (for imaginary modulus), Mathematica style complete elliptic
integrals, Neville theta functions, inverse lemniscate functions;
changed functions: comp_ellint_b/d and EllipticPiC for |k| ≥ 1,
fixed Nakagami distribution return types in specfun),
unit AMCmplx V0.95
with the new Riemann-Siegel theta and the
reciprocal gamma function.
-
64-bit compatible DAMath archive
with DAMCmplx V0.54
and Special Functions V1.31.07.
-
AMath archive
with unit AMath V2.28
and the new procedure CSEvalXDer (evaluate Chebyshev sum and derivative);
Special Functions V1.45.11
with the new functions:
Bose-Einstein integrals,
inverse Langevin function,
inverse tangent integral of real order,
Rogers-Ramanujan continued fraction;
changed functions:
LegendreChi for |x| > 1,
LerchPhi for z < -1,
polylogarithms of real order for x > 1.
-
64-bit compatible DAMath archive with
unit DAMath V0.99,
and Special Functions V1.30.11.
-
AMath with
unit AMath V2.26
(types for functions with pointer to parameters);
Special Functions V1.44.17
(new: Owen’s T function, inverse RiemannR, inverse erfce, Einstein functions,
transport integrals, Fermi-Dirac functions of real order;
changed; Polylogarithms (integer order for x > 1, real order for x < -1),
improved RiemannR, and other changes in erf_p, erf_q, Debye functions, Struve H_v(x)).
Unit AMTools V0.44 with the
new procedures intde_p and intdei_p (parameter pointer versions
of the double exponential integration routines) and PolyRootsOA (open array version).
-
64-bit compatible DAMath archive with
DAMath V0.97,
DAMTools V0.45,
and Special Functions V1.29.18.
-
User-requested unit
BJL3
which implements Bob Jenkins‘ non-cryptographic
hash function lookup3 (which is used in Delphi’s system.hash unit);
-
Another user-request: The [hash]file functions take a string as
file name parameter type (str255 was a relict from
older versions which had DLL compatible functions).
-
Another pseudo random number generator: Well1024a by
F. Panneton, P. L’Ecuyer and M. Matsumoto;
-
Functions rangel/w for random longint/word in range 0..range-1 for all generators;
-
Unit pasrand with TP/Delphi compatible LC generator and common random functions;
-
New archive layout: tests subdirectory, more test, AES/Salsa functions
included.
-
Faster 32/64-bit Blake2b compress
routines from EddyHawk, speed-up for 16-bit and non-int64 compilers,
now available for all compilers;
-
Faster Blake2s
16-bit compress routines;
-
The CRC/Hash demo programs
are recompiled to use the faster Blake2b algorithms.
-
User-requested Blake2b hash functions
(supported for TP6/7, D2-D7/D9-D10/D12/D17-D18/D25S, FPC, VP),
-
Fast Blake2s 32/64-bit
compression function contributed by EddyHawk,
-
The CRC/Hash demo programs
use the new Blake2b algorithms, GCH and CCH are compiled with Delphi 6 / FPC 3.0.0.
-
Compvers
V0.38 unit (basic support for FPC 3.0.4)
-
Small FPC/ARM-WinCE adjustments for
Dates V0.38,
TSC V0.44
-
Unit AMath V2.24 with the new
accurate helper function fma_x to compute a*b + c; old non-BASM code was removed.
-
Special Functions V1.42.01
with the new exponentially scaled exponential integral eisx2; the domain
of the Goodwin-Staton integral gsi was extended to negative arguments.
-
AMCmplx V0.92
with LambertW function for all branches.
-
New unit AMQuat V0.19 with
quaternionic arithmetic and elementary transcendental functions.
-
New functions: mp_digitsum, mp_is_lpsp, mp_is_slpsp, mp_is_psp,
mp_is_psp_d, mp_nextpower/_ex, s_mp_is_lpsp
-
Changed functions: mp_is_slpsp with standard Selfridge A parameters,
old function renamed to mp_is_slpsp_alt
- Other:
mp_calc with digitsum, nextpower, psp; extended help with ?? for t_calc;
radix command for t_calc and t_rcalc
-
New functions: mp_fact_swing, mp_swing and from AMath/fdamsupp:
mpf_arccosd, mpf_arccotcd, mpf_arccotd, mpf_arcsind, mpf_arctand,
mpf_cbrt, mpf_cosd, mpf_cospi, mpf_cotd, mpf_deg2rad, mpf_rad2deg,
mpf_rem,2pi, mpf_sind, mpf_sinpi, mpf_tand, mpf_tanpi
- Changed functions: mp_fact: check n ≤ MaxFact; mp_types: no threadvar for FPC1.0.10/Win32
-
AMath archive
with unit AMath V2.16:
accurate helper functions lncosh, lnsinh, some polynomial routines
(PolEvalC, PolEvalDeriv, PolEvalCHEDer), tanPi, pow1pf.
Special Functions V1.40.07
with q-Pochhammer Euler function, Dedekind eta for imaginary
arguments, complete elliptic integrals K and E for k>1.
AMTools V0.37 with the new
PolyRoots
procedure to find the real and complex roots of a polynomial up to
degree 20 using a companion matrix method, balancing, and the QR
algorithm for the eigenvalues of an upper Hessenberg matrix.
-
64-bit compatible DAMath archive with
unit DAMath V0.90,
DAMTools V0.38,
Special Functions V1.25.04.
-
Fully integrated
Blake2s hash functions. The source
in the archive should be compatible with units/applications that do not
expect the old values of MaxOIDLen or C_HashVers.
All CRC and
FCA/FZCA demo programs programs compile without changes.
-
New Rocksoft parameter records (total 100)
-
The CRC/Hash demo programs
support the new Blake2s algorithms and Rocksoft parameters.
-
Combined HMAC test program
-
Tested with Raspberry Pi 3 and Delphi 25 (Tokyo starter)
-
and more …
-
The 64-bit compatible DAMath functions
now support Raspberry Pi 3. There are no changes in the DAMath units,
some error bounds in the test files have been adjusted for FPC/ARM with
Raspberry Pi, results from FPC 3.0.2 are now included in the test suite.
-
Multi precision arithmetic package MPArith 1.34.02 with
-
Updated Util archive with
-
New functions: mp_is_pcarmichael, mp_is_pcarmichael_ex
- Changed functions: mp_calc uses mp_is_pcarmichael
- Other: Some broken links in mp_rsa are corrected;
time hint for CPUARM in help for t_calc and t_rcalc
-
Compvers V0.37 unit (support for
Delphi 25 VER320/’Tokyo‘ and FPC 3.0.2)
-
Dates V0.37 (FPC/CPUARM adjustments)
-
Hrtimer V0.29 (Simple hacks for FPC/CPUARM)
-
TSC V0.43 (Routines for FPC/CPUARM)
-
and version 1.68 of the standard include file
std.inc
-
The first update after 6 months brings only some minor changes:
std.zip addresses Delphi 25 (VER320, ‚Tokyo‘) and FPC/CPUARM;
the HMAC-SHA3 test vector page
is updated and some broken links are corrected.
-
In the near future there will be ARM (Raspberry Pi 3) compatible
versions of many packages, starting with MPArith, CRC/Hash, and DAMath.
Testing on AMD processors will be dropped.
-
New functions: is_Carmichael32, mpc_exp2, mpc_exp10, mpc_expm1, mpc_ln1p;
- Changed functions:
Allow n > p-1 in s_mp_nroot_modp, mpc_coth without vers;
- Bug fixes: fix error for JACOBI in mp_calc,
fix arg check in mpc_agm1;
- Other: Print factors/check only if trace is true in unit pfdu,
moved some mp_clear[x] into success blocks in unit mp_rsa;
-
Unit AMath V2.09 with the new
accurate helper function sqrt1pmx = sqrt(1+x^2)-x;
-
Special Functions V1.39.04
with the new general Fibonacci function,
general Chebyshev function the first kind, the nth „probabilists'“ Hermite polynomial,
CDF and ICDF for the limiting form of the Kolmogorov distribution function,
and the functional inverse of gamma;
-
AMTools V0.35 with the new
function zbrenty for zeros of f(x)-y.
-
New Poly1305
message-authentication algorithm,
-
Updated FCA demo archive with
Serpent and Twofish units contributed by Giorgio Tani
and corresponding test programs.
-
New SHA3 MMX version for 32-bit compilers contributed by Eric Grange,
-
Fixed HMAC-SHA3 test program from test vector page.
-
Updated HMAC-SHA3 test program and vectors;
now including intermediate values.
-
Updated CRC/Hash archive and
Hash/HMAC/KDF introduction page
-
AMath and
the 64-bit compatible DAMath
avoid some inaccuracies introduced by
FreePascal’s -O4 fastmath ‚optimization‘ (FPC 2.7.1, 3.0.0/1, 3.1.1): Among
others floating point division by constants may be replaced by multiplication
with the inverse, leading to quotients which are sometimes
not correctly rounded!
I recommend to turn off this feature using
{$OPTIMIZATION NOFASTMATH} or with command line option –OoNOFASTMATH!
-
Changes on the Crypto page:
-
Util archive with
Compvers V0.35 unit (basic support for
FPC 3.0.0 and Delphi 23) and version 1.65 of the standard include
file std.inc
-
Maintenance adjustments for the zlib library
-
Optional MMX coded Keccak state permutation for 32-bit compilers
(contributed by Anna Kaliszewicz and payl);
-
HMAC-SHA3 test program and vectors;
-
Faster PurePascal scrypt key derivation (reordered salsa20/8 core routine).
-
Constant time verification/compare for
the all-in-one packet functions
of AES (aes_eax, aes_gcm, aes_ccm) and
Camellia (cam_eax, cam_ccm);
-
Improved Salsa20
stream cipher (faster reordered PurePascal salsa20_wordtobyte);
-
Updated FCA demo archive.
-
Updated CRC/Hash with
-
AMath archive
with unit AMath V2.06,
Special Functions V1.34.06
(Struve functions H and L for negative real order, faster
Dirichlet eta function for s near 1, improved
Gauss hypergeometric function 2F1, and some special cases for Bessel Y
and Bulirsch’s incomplete elliptic integral of the 1st kind)
and unit AMCmplx V0.84
(optional scaled robust division, new functions elle, ellke, exp2, exp10
and improved cpolyr using Knuth’s faster evaluation scheme).
-
64-bit compatible DAMath archive with
the DAMath V0.82 unit,
Special Functions V1.19.06,
and DAMCmplx V0.44.
-
Fully integrated SHA3 hashes: The source in the archive should be
compatible with units/applications that do not expect the old size of
THashContext. All
CRC and
FCA/FZCA demo programs programs compile without changes.
-
Improved CRC64 for 64-bit code on 64-bit systems
-
The GCH/CCH programs support the new SHA3 algorithms
-
Removed the DLL related sources
- New functions: Complex arithmetic-geometric
mean (mpc_agm, mpc_agm1);
- Changed functions:
Extended s_mp_nroot_modp,
small change in s_mp_is_pth_power,
fixed/extended mp_dfact for n < 0;
-
Multi precision arithmetic package MPArith V1.30.22 with
new functions (mp_holf, mp_is_power_modpk, mp_random, mp_safeprime_ex,
s_mp_nroot_modp, s_mp_nroot_modpk, s_mp_nroot_modpq, dlog32,
is_primepower32, is_primroot32, mlinsolve32)
and changed functions (mp_perm, s_mp_cbrtmodpk, s_mp_sqrtmodpk);
-
Util archive with
Compvers V0.30 unit: basic support for
Delphi 21 / XE7;
-
Version 1.60 of the standard include file in std.zip;
-
AMath archive
with AMath V1.95 (new logistic function),
Special Functions V1.29.03,
and AMCmplx V0.73
(complex digamma function cpsi and polynomial evaluation);
-
64-bit compatible DAMath archive with
the unit DAMath V0.72,
Special Functions V1.14.03,
and DAMCmplx V0.35.
- Improved support for ARM CPUs with FreePascal
-
New functions: mp_fermat_factor, mp_safeprime, safeprime32, s_mp_is_psp2, tau32
- Changed functions: mp_is_spsp, mp_next_prime, mp_rand_prime, s_mp_nextprime_sieve
-
The basic introduction and the multi precision
calculator t_calc are adjusted.
-
Multi precision arithmetic package MPArith V1.28.05 with
new functions in unit mp_cmplx (arccot, arccotc, arccoth,
arccothc, arccsc, arccsch, arcsec, arcsech, csc,
csch, sec, sech) and updated introduction.
-
AMath archive with small changes in the
AMath V1.87 unit, the
Special Functions V1.24.02,
and the accompanying introduction.
Unit AMCmplx V0.63
with new functions (cgamma, clngamma, csgn),
improvements (carccsc/sec/sech without branch point series, and more),
and a new MPArith test program to measure the accuracy of the complex functions.
-
64-bit compatible DAMath archive with
DAMath V0.62,
unit DAMCmplx V0.29
and Special Functions V1.09.02
- New unit mp_cmplx implements multi precision complex floating point
arithmetic and elementary transcendental functions
-
New real floating point functions (mpf_divr_ext, mpf_exp10i, mpf_nroot,
mpf_sincos, s_mpf_is_gt0)
-
Changed number theoretic functions (Allow a < 0 in mp_sqrtmod2k, fixes and new iterative logic in mp_val/rem)
-
New unit AMCmplx V0.40 with complex arithmetic and
elementary transcendental functions
-
New special function: complete Fermi-Dirac integral F(5/2,x)
| © 2018 W.Ehrhardt |
Last update Sep. 12, 2018 |
Mail concact (use @ to make it valid):
info (at) wolfgang-ehrhardt.de
|
My PGP key
|
httpsBefore downloading any software from this site please read this
legal notice.
Sep. 12, 2018
Aug. 08, 2018
June 18, 2018
May 10, 2018
Apr. 18, 2018
Mar. 18, 2018
Feb. 17, 2018
Jan. 01, 2018
Nov. 29, 2017
Nov. 17, 2017
Nov. 02, 2017
Oct. 05, 2017
Aug. 03, 2017
July 05, 2017
June 04, 2017
May 14, 2017
Apr. 21, 2017
Oct. 23, 2016
July 04, 2016
May 01, 2016
Mar. 01, 2016
Oct. 27, 2015
Sep. 14, 2015
Aug. 23, 2015
July 01, 2015
May 04, 2015
Jan. 18, 2015
Dec. 07, 2014
Oct. 13, 2014
Aug. 25, 2014
July 23, 2014
June 11, 2014
May 11, 2014
Apr. 07, 2014
Mar. 02, 2014
Jan. 12, 2014
CRC/Hashe-mailPGP keyhttps://sslsites.de/wolfgang-ehrhardt.de/index.html