|
|
|
|
Changelog for perl-Math-Prime-Util-GMP-0.520.0-lp156.1.1.x86_64.rpm :
* Thu Mar 07 2024 Tina Müller - Use %autosetup instead of deprecated %patchN * Tue Jun 23 2020 Tina Müller - updated to 0.52 see /usr/share/doc/packages/perl-Math-Prime-Util-GMP/Changes * Fri Aug 30 2019 Tina Mueller - Add fix-shebang.patch to satisfy rpmlint * Fri Aug 30 2019 Tina Mueller - Add BuildRequires: gmp-devel * Wed Apr 03 2019 Stephan Kulow - updated to 0.51 see /usr/share/doc/packages/perl-Math-Prime-Util-GMP/Changes 0.51 2018-02-27 [ADDED] - rootreal(x,n[,digits]) nth root of x: x^(1/n) - addreal(x,y[,digits]) x+y - subreal(x,y[,digits]) x-y - mulreal(x,y[,digits]) x *y - divreal(x,y[,digits]) x/y - subfactorial(n) !n (derangements) - factorial_sum(n) !n (sum of factorials) - multifactorial(x,n) x!, x!!, x!!!, etc. [FIXES] - Some memory leaks squashed. - Trizen reported a factor bug. Fixed with patch to tinyqs.c init code. [OTHER] - Work around a bug in NetBSD. - Standalone ecpp creation fixed. - Allow Ramanujan polynomials (D = 11 mod 24) for ECPP, reducing sizes. - Some new code for ei(). - is_primitive_root quite a bit faster. 0.50 2017-11-28 [FIXES] - real.h mismatched types on machines where unsigned long != UV. 0.49 2017-11-27 [ADDED] - Euler([digits]) Euler\'s constant with this many digits - li(x[,digits]) Logarithmic Integral of x (x floating point) - ei(x[,digits]) Exponential Integral of x (x floating point) - logreal(x[,digits]) Natural logarithm of x - expreal(x[,digits]) e^x - powreal(x,n[,digits]) x^n - agmreal(a,b[,digits]) AGM(a,b) - arithmetic-geometric mean - prime_count_lower(n) lower bounds for prime count - prime_count_upper(n) upper bounds for prime count [FIXES] - When real functions rounded 0.999... to 1.0 and were given too few digits, they could return .0 instead of 1.0. [OTHER] - moebius handles negative inputs - Added Jason P\'s cofactorize-tinyqs, which handles up to 126 bit. This gives us faster and more consistent timing when factoring 20 to 38 digit inputs. - Rewrite internal log and exp functions. Among other things, this speeds up LambertW and non-integer Zeta by 10x. - Use Ramanujan/Chudnovsky Pi algorithm. 2x faster with many digits. - Constants Euler, Pi, and Log2 are cached, just like Pari/GP, MPFR, etc. All three are used quite a bit internally. - Calling Pi or Euler in void context just calculates (and caches) the value. This saves the expensive string conversion. 0.48 2017-10-05 [FIXES] - Issues with 32-bit GMP on 64-bit platforms. - Use log instead of logl. 0.47 2017-10-04 [ADDED] - is_square(n) Returns 1 if n is a perfect square - is_carmichael(n) Returns 1 if n is a Carmichael number - is_fundamental(n) Returns 1 if n is a fundamental discriminant - is_totient(n) Returns 1 if euler_phi(x) == n for some x - is_polygonal(n,k) Returns 1 if n is a k-gonal number - polygonal_nth(n,k) Returns N if n is the Nth k-gonal number - logint(n,base) Integer log: largest e s.t. b^e <= n - factorialmod(n,m) Returns n! mod m - permtonum([...]) Returns rank of permutation array ref - numtoperm(n,k) Returns kth permutation of n elems - hammingweight(n) Returns bitwise population count of n [FIXES] - Random stream is identical on big-endian machines. RT 122718 [PERFORMANCE] - Use new sieve marking for prime_iterator. Should give a very small speedup to many functions. - Remove unnecessary variable copy in AKS (is_primitive_root_uiprime). - Slightly faster twin prime sieve by splitting BPSW test. - Factoring is faster with new SQUFOF and native pbrent. [OTHER] - is_primitive_root internal func doesn\'t modify inputs. - non-exported factor methods (e.g. squfof_factor, ecm_factor, etc.) now always return smallest factor first. - old native SQUFOF and GMP SQUFOF removed. - On x86-64 use a very fast Pollard Rho Brent for 63-bit. - On 64-bit platforms (long = 64-bit), use new SQUFOF126 which can handle up to 126-bit inputs using only native math in the core. This is about 10x faster than our old SQUFOF. 0.46 2017-04-17 [FIXES] - Allow single argument to miller_rabin_random (implies one test). - AKS on small inputs wasn\'t correctly calculating primitive roots. 0.45 2017-04-16 [FIXES] - Remove use of exp2 which is C99 only. - Trap negative bases sent to miller_rabin_random 0.44 2017-04-13 [ADDED] - irand() Returns uniform random 32-bit integer - irand64() Returns uniform random 64-bit integer - drand([fmax]) Returns uniform random NV (floating point) - urandomm(n) Returns uniform random integer in [0, hi-1] - random_bytes(nbytes) Return a string of CSPRNG bytes [FIXES] - miller_rabin_random wasn\'t initializing a variable. Fixed and test added. Thanks to Alexandr Ciornii for timely reporting. - Fixed is_primitive_root behavior with negative values. [PERFORMANCE] - sieve_prime_cluster up to 2x faster. [OTHER] - prime_count(), random_prime(), urandomr() can be used with one arg. 0.43 2017-03-12 [ADDED] - random_strong_prime(nbits) random strong prob prime of nbits bits - random_maurer_prime(nbits) random nbits-bits proven prime - random_shawe_taylor_prime(nbits) random nbits-bits proven prime - random_maurer_prime_with_cert(nbits) - random_shawe_taylor_prime_with_cert(nbits) - urandomb(n) random number between 0 and 2^n-1 - urandomr(lo,hi) random number in [lo,hi], inclusive. [PERFORMANCE] - sieve_primes with small widths should perform much better. 0.42 2017-02-27 [ADDED] - lambertw(x[,digits]) Lambert W function - random_prime(a,b) random prob prime in range [a,b] - random_nbit_prime(nbits) random prob prime of exactly nbits bits - random_ndigit_prime(ndigs) random prob prime of exactly ndigs digits - seed_csprng(bytes,data) supply a seed to the internal CSPRNG - is_csprng_well_seeded() returns 1 if the CSPRNG has a proper seed - is_semiprime(n) does n have exactly two prime factors [FIXES] - is_power behaviour for 1 and -1. - is_nminus1_prime could assert on some inputs. Fix. - chinese([3,0],[2,3]) made GMP go belly up. Found by Trizen. - divisors(1) in list context would segfault. Found by Trizen. [PERFORMANCE] - Adjust zeta algorithm crossover for large precision. Makes a huge difference for bern{frac/real} with values > 53000. Thanks to Trizen for pointing this out. - zeta works for all real values, returns undef for 1. It has issues below -10 or so that need to be dealt with in a later release. - is_primitive_root a bit faster with large inputs. - stirling about 40% faster. Thanks to Karim Belabas. [OTHER] - The ISAAC CSPRNG has been added internally and all functions call it. While it is quite fast it is slower than GMP\'s Mersenne Twister. - On startup, we attempt to seed ISAAC with 256 bytes from /dev/urandom. Callers can call is_csprng_well_seeded() to check if this succeeded, and call as needed seed_csprng() to seed or reseed. 0.41 2016-10-09 [API CHANGES] - bernreal and harmreal will use the second argument to mean the digits of precision to use, rather than the number of digits past the decimal place. - is_pseudoprime and is_strong_pseudoprime act like Math::Prime::Util. [ADDED] - todigits(n[,base[,len]]) Convert number to digit array - zeta(s[,digits]) Riemann Zeta of integer or FP s - riemannr(s[,digits]) Riemann R function of integer or FP s - divisors(n) Returns list of divisors - is_euler_pseudoprime(n,AATTa) Euler-Jacobi primality test [OTHER] - With verbose >= 3, prints factors found in partial sieve. - factor(1) returns empty list, just like non-GMP code. - factor() went through a Perl layer for obsolete reasons. Removed. - bernreal and bernfrac will use the Zeta/Pi method for large values, making it orders of magnitude faster for large sizes. - Added internal FP log, exp, pow functions, which are not in GMP. - is_prime will do one extra M-R test for probable primes, down from 1-5. Also, if is_provable_prime adds two Frobenius tests if returning a 1. - Removed Perl layer from is_strong_pseudoprime. - is_pseudoprime and is_strong_pseudoprime take a list of bases, and there is no default base. - sieve_primes with small n and large range (e.g. 10^20 to 10^20+8e9) is much faster. This tunes the full vs. partial sieve crossover. 0.40 2016-08-01 [ADDED] - sqrtint(n) Integer square root of n - rootint(n,k) Integer k-th root of n - is_prime_power(n) Returns k if n=p^k for p a prime. [OTHER] - is_perrin_pseudoprime 2x faster. Takes optional second argument for additional restrictions. 0.39 2016-07-24 [ADDED] - bernreal returns float value of Bernoulli number - is_euler_plumb_pseudoprime Colin Plumb\'s Euler Criterion test - surround_primes returns offsets of prev and next primes [PERFORMANCE] - prev/next/surround prime sieve is slightly deeper - Add very simple composite filter for is_perrin_pseudoprime. - Internal refactor of Miller-Rabin code to remove one mpz variable. [OTHER] - Add option for restricted Perrin pseudoprimes. 0.38 2016-06-18 [FIXES] - Minor updates for Kwalitee. - Rewrite of BLS75 internals, rewrite BLS75 hybrid. - Remove two small memory leaks. [PERFORMANCE] - Less effort to prove primality in is_prime(). 0.37 2016-06-06 [ADDED] - is_nplus1_prime(n) BLS75 N+1 deterministic primality test - is_bls75_prime(n) BLS75 N-1, N+1, combined primality tests [FIXES] - Fixed primorial on systems with not-new GMP, 8-byte UV, and 4-byte long. - sieve_range should work with >32-bit depths on 64-bit Perl + 32-bit GMP. 0.36 2016-05-21 [ADDED] - addmod (a + b) % n - mulmod (a * b) % n - divmod (a / b) % n - powmod (a ^ b) % n - invmod (1 / b) % n - sqrtmod square root modulo a prime - is_primitive_root(a,n) return 1 if \'a\' is a primitive root mod n - sieve_range(n,width,depth) sieve from n, returning candidate offsets [FIXES] - Allow a leading \'+\' in inputs. [PERFORMANCE] - znprimroot is much faster with large inputs. - Speedup partial sieve with large input. - next_prime and prev_prime sieve deeper. ~5% faster with large inputs. - AKS using Bernstein (2003) theorem 4.1. 10-20x faster. - Speedup for large pn_primorial and primorial. Much faster for very large values, though it will all get swamped by the overhead in returning the large value. This is a great reason to return mpz objects. [OTHER] - Split out factor, primality, and AKS code into separate source files. 0.35 2015-12-13 [FIXES] - gcdext done manually for old GMP. - fix memory leak in chinese 0.34 2015-10-14 [ADDED] - sieve_prime_cluster(low,high,...) sieve clusters/constellations [PERFORMANCE] - Speedup partial sieve with large range. [OTHER] - Remove _GMP_trial_primes(), which was never exported. - Internal restructuring of sieve_primes and sieve_twin_primes. - is_frobenius_pseudoprime with arguments doesn\'t check for perfect square, and works for small primes plus large params. 0.33 2015-09-04 [ADDED] - sieve_twin_primes(low,high) sieve for twin primes - is_miller_prime(n[,assumeGRH]) deterministic Miller test [PERFORMANCE] - New results from Sorenson and Webster let us give faster deterministic results for 65-82 bits. is_prime always returns {0,2} for this range. * Fri Jan 15 2016 bwiedemannAATTsuse.com- buildrequire gmp-devel to fix build * Sun Sep 20 2015 cooloAATTsuse.com- initial package 0.32 * created by cpanspec 1.78.08
|
|
|