Upstream changes:
3.0612 2016-01-09
- Move the VCS repository to GitHub.
- People are more used to it, and it can take part in the CPAN pull-req
challenge.
3.0611 2016-01-07
- Apply patch from Debian to correct a spelling error.
- https://rt.cpan.org/Ticket/Display.html?id=110987
- Thanks to Salvatore Bonaccorso for the report and patch.
3.0610 2016-01-06
- Clarified the docs for add_data_with_samples().
- Some people thought they were repeat counts of the data , but they
are normally ignored.
- Replace remaining tabs with spaces.
3.0609 2015-06-19
- Update some old URLs and addresses.
3.0608 2015-01-14
- Apply patch to speed up skewness calculations.
- https://rt.cpan.org/Public/Bug/Display.html?id=101422
- Thanks to Shawn (SLAFFAN).
Upstream changes:
0.11 Thu Oct 22 15:31:10 PDT 2015
fix one more typo
0.10 Wed Oct 21 19:56:19 PDT 2015
finish the typo corrections started in 0.09, sigh...
0.09 Wed Oct 21 18:53:44 PDT 2015
corrected numerous typos thanks to patch by
gregor herrmann <gregoa@debian.org>
Changes:
- New package implementing van Hoej factorization algorithm
for LODO-s.
- Gcd over Expression(Integer) now uses modular method.
- Improvements to integrator, in partucular trigonomoetric
functions are consistently integrated via transformation
to complex exponentials.
- Some categories and domains are more general. In particular
OrderedFreeMonoid is removed, as ordered case is handled
by FreeMonoid.
- Category Monad in renamed to Magma. Domain Magma is
renamed to FreeMagma.
Bug fixes, in particular:
- Coercion of square matrices to polynomials is fixed.
- Problem with division by 0 in derivative of 'ellipticPi'
is fixed.
- Division in Ore algebras used to cause infinite loop
when coefficients were power series.
This version comes with extra Linux tmp files; reported upstream as
https://github.com/SciRuby/rb-gsl/issues/34
Changes:
Support for gsl-2.1.0.
Support for nmatrix (not in pkgsrc yet)
Changes from version 3.1.3 to version 3.1.4:
- Improved MPFR manual.
- Bug fixes (see <http://www.mpfr.org/mpfr-3.1.3/#fixed> and ChangeLog file).
- MinGW (MS Windows): Added support for thread-safe DLL (shared library).
Bug numbers refer to the BTS at http://pari.math.u-bordeaux.fr/Bugs/
Done for version 2.7.5 (released 09/11/2015):
[last column crossreferences current development release 2.8.0]
Fixed
1- forprime engine could skip (fast) sieve in favour of (slow)
nextprime [#1711] [F113]
2- 0^[1] -> domain error [#1713] [F114]
3- memory leaks (clones) in ellchangecurve [#1716] [F115]
4- zeta inaccurate around 0 [#1714] [F116]
5- bnrrootnumber did not support the trivial character [0,..,0] [F118]
6- default(log,1) when logfile is write-protected later lead to SEGV [F119]
BA 7- 2-adic gamma function: fix accuracy loss [F120]
8- A==A -> 0 for A a t_SER of huge accuracy (so that A-A overflows
valuation) [#1734] [F121]
XR 9- P=Pol([1,-2,12,-12,-181,-4,-6899,9780,6360,702,-45]);
for(i=1,10000,setrand(i);nfdisc(P)) -> crash [#1735] [F122]
10- select(x->x,Vecsmall([1,2,3]),1) -> crash [#1737] [F123]
BA 11- [libpari] RgV_to_RgX_reverse did not work if v[1] or v[2] was 0 [F125]
12- bnfinit could fail at low precision [#1736] [F126]
13- Rg_to_ff: incorrect type in zk_to_ff [#1755] [F127]
BA 14- nfsubfields could fail [#1758] [F128]
15- rare SEGV in ArtinNumber [#1759] [F129]
Done for version 2.7.4 (released 19/06/2015):
[last column crossreferences current development release 2.8.0]
Fixed
1- divisors([2,1]) -> SEGV [#1664] [F84]
2- acos([Pol(1)]) -> GC bug [#1663] [F85]
3- primes([1,Pol(2)]) -> SEGV [#1668] [F87]
4- buffer overflow after default(format,"f.precision") [F95]
5- qfminim(A, 0, ...) -> stack overflow [#1682] [F97]
6- div_scal_rfrac could create an invalid t_POL [#1651] [F99]
7- polroots(t_POL with leading coeff = 0) -> fp exception [#1690] [F100]
8- \r cannot deal with very long filenames [#1616] [F101]
9- rnfisabelian(nf, non monic t_POL) -> SEGV [#1693] [F102]
10- possibly incorrect result in nfdisc(T,listP) [F104]
11- wrong dim(Ker) returned by ZM_pivot => SEGV in Z-linear algebra
routines. E.g. setrand(1);quadclassunit(-612556842419) [#1700] [F105]
12- moebius(factor(18)) -> 1 instead of 0 [#1702] [F106]
13- ispower(-167^10) => domain error [#1703] [F107]
14- ispowerful(factor(0)) != ispowerful(0) [F108]
15- expm1(2*I) => wrong result [F109]
16- gamma(1+a*x+O(x^2)) => error [#1707] [F110]
17- printsep() printed its argument in random format instead of f_RAW [F111]
18- nfdisc(x^10 - 29080*x^5 - 25772600) -> oo loop [#1710] [F112]
Added
ED 1- mingw64 support [A111]
Done for version 2.7.3 (released 18/02/2015):
[last column crossreferences current development release 2.8.0]
Fixed
1- [from 2.7.2] ??bnrL1 and ??ellL1 did not work anymore
2- thue(f^e*g, ...), e even, (f,g)=1 missed solutions such that f<0 [F22]
XR 3- bnrL1(bnrinit(bnfinit(x^2-168),[6,[1,1]],1)) -> bug in ArtinNumber [F55]
4- nfisincl(t_POL, t_POL) could lead to wrong negative results [F58]
5- polresultant(1+x*z^2,1+y*z^4,z) -> GC error [#1614] [F59]
BA 6- ellcard over non-prime fields could return wrong results [F60]
7- [libpari] FpX_roots could produce GC errors [#1618] [F61]
8- weber(1+I) was missing its imaginary part [F62]
9- (1+I)*(1+1/2*I) => wrong result (type errors) [#1619] [F63]
10- contfracpnqn([a]) => [1,a;0,1] instead of [a,1;1,0] [F64]
11- primes([2^50, 2^50+200000]) => stack overflow [F65]
12- issquare((x+1/2)^2,&z); z => 1.0*x+0.5 instead of x+1/2 [F66]
13- possibly missing roots in nfroots (when using Trager) [F68]
14- quadray(bnf, ideal) did not work [F69]
15- thue(-14*x^3 + 10*x^2 + 63*x - 5,1) -> "short continued fraction" [F70]
16- thue(29*x^3+130*x^2-35*x-48,1) -> "round error" bug [F71]
17- T=thueinit(10*x^3+6*x^2-41*x+8,1); thue(T,8) => SEGV [#1630] [F72]
18- ellrootno(e,p = 2 or 3) when e not minimal at p => random result [F73]
19- agm(1,2+O(5)) -> SEGV [#1645] [F76]
BA 20- [cygwin64] ellap(ellinit([0,0,1,-1,0]),10007) was broken [F77]
21- primes([-5,5]) -> [5] (spurious absolute values) [F78]
22- matqr([;]) -> crash [F79]
23- Fp_rem_mBarrett could return a non-normalized result [F80]
p=436^56-35;Mod(271,p)^((p-1)/2) -> p+1
24- plotcopy would corrupt "string" objects (ROt_ST) [F81]
BA 25- [GP] default arguments to GP functions could cause corruption [F82]
VBr26- [darwin] remove obsolete linker options that cause crashes [#1623] [F83]
Done for version 2.7.2 (released 19/09/2014):
[last column crossreferences current development release 2.8.0]
Fixed
1- gaffsg(0, t_PADIC): wrong valuation [F21]
2- (t_INTMOD with word-sized modulus)^(huge negative power) [#1584] [F24]
3- (gp -p N) or (primelimit=N in gprc_ for N >= 436273290 resulted in an
incorrect primetable. N.B. Such commands are now useless: needed primes
are produced dynamically anyway. [F25]
4- monomial(exact zero, d, v) returned an invalid t_POL / t_RFRAC [F26]
5- contfracpnqn(v, n) returned partial quotients p[-1]/q[-1] ...
p[n-1]/q[n-1], instead of the documented p[0]/q[0] ... p[n]/q[n] [F27]
6- factor((3+4*I)/25) -> factor 2+I had 0 exponent [#1586] [F29]
BA 7- iferr() could crash if some component of the t_ERROR were clones. [F31]
8- nffactor() could overflow the stack when default accuracy too low [F32]
BA 9- obsolete use of E=[a1,a2,a3,a4,a6] in ellmul crashed [#1589] [F33]
10- incorrect rounding in mulrr/divrr for one-word precision reals [F34]
BA 11- multiif did not handle correctly return() in conditions [#1590] [F35]
12- [0..5] -> [0,0,0,0,0] on some architectures [F36]
13- is_gener_Fp could return wrong results [F37]
14- Fq_sqrtn(t_INT,..,&zeta) could return a wrong root of 1 [F38]
15- bnfinit: SEGV due to precision issues [#1592] [F39]
16- zm_zc_mul only worked for square zm matrices [F40]
17- genus2red(0,27*x^5+97*x^4+118*x^3+60*x^2+13*x+1,3) -> bug [#1596] [F41]
18- [gphelp] oo loop when $COLUMNS too small [#1594] [F42]
19- genus2red(x,-x^6-3*x^4-10*x^2-1,3) -> impossible inverse [#1597] [F43]
20- factoru(1) returned a t_MAT instead of the expected "matsmall" [F44]
21- FpM_charpoly wrong in small characteristic [#1602] [F45]
22- when compatible = 3; series() used a random precision [F50]
23- genus2red(0,6*x^6+5*x^4+x^2+1,7) -> impossible inverse [#1597] [F51]
24- isprime() could crash on large input [#1604] [F52]
25- genus2red(x^3+1,1) -> type error [#1597] [F53]
26- gphelp did not handle === correctly [#1603] [F54]
27- FpXY_evaly() wrong when evaluating at 0 [F56]
28- [mingw] gp could crash at start up [#1607] [F57]
Done for version 2.7.1 (released 16/05/2014):
[last column crossreferences current development release 2.8.0]
Fixed
1- make install fails on OS/X: ln -s libpari.dylib libpari.dylib fails [F1]
2- Q_pvalrem(t_FRAC) => wrong result [F2]
3- [] == 0 but []~ != 0 (now []~ == 0 as well) [#1560] [F3]
BA 4- test-kernel did not work when using --mt=pthread [F4]
BA 5- ellheegner was using too much memory in some case [F5]
BA 6- ellap can overflow on 32-bit machine [#1558] (minimal fix) [F6]
7- nfhilbert(K,x,y, P above 2) could give wrong results [#1561] [F7]
8- gcd(1/2, 1+I*1.) -> SEGV [#1563] [F10]
9- mathnf(t_VEC) could corrupt input (change sign) [F11]
10- [libpari] RgM_transmul did not work [F12]
11- [libpari] Fq_issquare didn't support T=NULL [F13]
12- [libpari] nfpow_u didn't handle non-integral rational numbers [F14]
13- eint1(0) -> stack overflow [#1568] [F15]
14- nfroots(, t_POL with leading coeff -1) could miss solutions [F19]
15- precprime(1) -> invalid t_INT [#1576] [F20]
PARI-GP is a package which is aimed at efficient computations in
number theory, but also contains a large number of other useful
functions. It is somewhat related to a Computer Algebra System, but
is not really one since it treats symbolic expressions as mathematical
entities such as matrices, polynomials, series, etc..., and not as
expressions per se. However it is often much faster than other CAS,
and contains a large number of specific functions not found elsewhere,
essentially for use in number theory.
This package can be used in an interactive shell (GP) or as a C/C++
library (PARI). It is free software, in the sense of freedom AND 'free
of charge'.
This is the old 2.3 version of pari.
2015-06-24 Kurt Hornik <Kurt.Hornik@wu.ac.at>
* DESCRIPTION (Version): New version is 2.3-47.
* NAMESPACE: Add missing imports.
2015-02-11 Kurt Hornik <Kurt.Hornik@wu.ac.at>
* DESCRIPTION (Version): New version is 2.3-46.
* R/times.R:
* man/trunc.times.Rd:
Add round method for times objects via Math.times (to
be able to use the same arguments as the trunc methods,
differently from the generic).
Suggestion by Gabor Grothendieck <ggrothendieck@gmail.com>.
Add missing DEPENDS
Upstream changes:
Changes in version 1.1-2 (2016-02-22)
fixed memcpy for overlapping regions error, found in valgrind checks by Brian Ripley
fixed a few more (small) memory leaks
Changes in version 1.1-1 (2016-02-19)
Further cleaned up C source code, got rid of lex and yacc files
Improve fit.variogram to choose initial values for range, sill and nugget before fitting, and fit over a range of model types
allow NA values in vgm
Fixed https://github.com/edzer/gstat/issues/1
Changes in version 1.1-0 (2015-10-17)
remove meschach matrix library, rewrote interface, link to R's lapack
improve notification in case of singular matrices
remove all C code that was not used by R package gstat
add Makevars, remove configure
remove links to ai-geostats.org
wrap fit.StVariogram example in dontrun
Changes in version 1.0-26 (2015-08-26)
use ordered spatial index when selecting nearest strongest correlated neighbours in local kriging to avoid warning of spacetime
update spatio-temporal geostatitics vignettes; add R Journal draft
add spatio-temporal PM10 interpolation movie (mp4)
Cover-tree and kd-tree fast k-nearest neighbor search algorithms
and related applications including KNN classification, regression
and information measures are implemented.
Octave 4.0 is a major new release with many new features,
including a graphical user interface, support for classdef
object-oriented programming, better compatibility with Matlab,
and many new and improved functions.
A list of important user-visible changes is availble at
http://octave.org/NEWS-4.0.html, by selecting the Release Notes
item in the News menu of the GUI, or by typing news at the Octave
command prompt.
Add LICENSE
Upstream changes:
Release 1.06.
New 'mydist' Makefile target to sign and build a tarball.
Pass ABSTRACT, AUTHOR, LICENSE and MIN_PERL_VERSION to
ExtUtils::MakeMaker::WriteMakefile().
Correctly set $VERSION that doesn't trigger warnings:
https://rt.cpan.org/Ticket/Display.html?id=89020
Update documentation to include the URL to the project's new
source code repository at github.com:
https://github.com/blair/perl-math-interpolate
Update author contact email address.
Upstream changes:
Changes in v2.12 - Jonathan "Duke" Leto
December 2014
--------------------------
* Added as_list() function. (Ivan Baidakou (basiliscos))
Changes in v2.11 - Jonathan "Duke" Leto
January 2014
--------------------------
* Add maximum/minimum functions. (Alberto Sim繭es)
* Add reshape constructor. (Alberto Sim繭es)
Changes in v2.10 - Jonathan "Duke" Leto
November 2013
--------------------------
* Fix tests on Windows, thanks to Russell Jenkins <veryrusty@gmail.com>
Changes in v2.09 - Jonathan "Duke" Leto
November 2011
--------------------------
* as_latex() now works and is tested properly
Upstream changes:
1.005 24 Jan 2015 Permute the empty list per Philipp Rumpf
1.006 25 Jan 2015 Break memory loop per Philipp Rumpf
1.007 25 Jan 2015 World writables set correctly using some excellent perl from http://www.perlmonks.org/?node=bart
Upstream changes:
0.57 2016-01-03
[ADDED]
- formultiperm { ... } \@n loop over multiset permutations
- todigits(n[,base[,len]]) convert n to digit array
- todigitstring(n[,base[,len]]) convert n to string
- fromdigits(\@d[,base]) convert digit array ref to number
- fromdigits(str[,base]) convert string to number
- ramanujan_prime_count counts Ramanujan primes in range
- vecany { expr } @n true if any expr is true
- vecall { expr } @n true if all expr are true
- vecnone { expr } @n true if no expr are true
- vecnotall { expr } @n true if not all expr are true
- vecfirst { expr } @n returns first element with expr true
[FUNCTIONALITY AND PERFORMANCE]
- nth_ramanujan_prime(997) was wrong. Fixed.
- Tighten Ramanujan prime bounds. Big speedups for large nth Rp.
0.56 2015-12-13
[ADDED]
- is_carmichael(n) Returns 1 if n is a Carmichael number
- forcomp { ... } n[,{...}] loop over compositions
[FUNCTIONALITY AND PERFORMANCE]
- Faster, nonrecursive divisors_from_factors routine.
- gcdext(0,0) returns (0,0,0) to match GMP and Pari/GP.
- Use better prime count lower/upper bounds from B羹the 2015.
- forpart and forcomp both use lexicographic order (was anti-lexico).
0.55 2015-10-19
- Fixed test that was using a 64-bit number on 32-bit machines.
[FUNCTIONALITY AND PERFORMANCE]
- Speed up PP versions of sieve_prime_cluster, twin_primes,
twin_prime_count, nth_twin_prime, primes.
0.54 2015-10-14
[ADDED]
- sieve_prime_cluster(low,high[,...]) find prime clusters
[Misc]
- Certain small primes used to return false with Frobenius and AES Lucas
tests when given extra arguments. Both are unusual cases never used
by the main system. Fixed.
0.53 2015-09-05
[ADDED]
- ramanujan_tau(n) Ramanujan's Tau function
- sumdigits(n[,base]) sum digits of n
[FUNCTIONALITY AND PERFORMANCE]
- Don't use Math::MPFR unless underlying MPFR library is at least 3.x.
- Use new Math::Prime::Util::GMP::sigma function for divisor_sum.
- Use new Math::Prime::Util::GMP::sieve_twin_primes(a,b).
0.52 2015-08-09
[ADDED]
- is_square_free(n) Check for repeated factors
[FUNCTIONALITY AND PERFORMANCE]
- print_primes with 2 args was sending to wrong fileno.
- Double speed of sum_primes.
- Rewrote some internal sieve-walking code, speeds up next_prime,
forprimes, print_primes, and more.
- Small speedup for forcomposites / foroddcomposites.
- Small speedup for is_prime with composite 32+ bit inputs.
- is_frobenius_khashin_pseudoprime now uses Montgomery math for speed.
- PrimeArray now treats skipping forward by relatively small amounts as
forward iteration. This makes it much more efficient for many cases,
but does open up some pathological cases.
- PrimeArray now allows exporting @primes (and a few others), which
saves some typing.
- PrimeArray now works for indices up to 2^32-1, after which it silently
rolls over. Previously it worked to 2^31-1 then croaked.
- PrimeIterator now uses small segments instead of always next_prime.
A little more memory, but 2-4x faster.
- factor, divisor, fordivisors and some others should better keep
bigint types (e.g. Math::GMPz input yields Math::GMPz output).
- Faster GCD on some platforms.
- Peter Dettman supplied a patch for Shawe-Taylor prime generation to
make it deterministically match reference implementations. Thanks!
[Misc]
- Check for old MPFR now using C library version, not module version.
- prime_count_{lower,upper} now uses MPFR to give full precision.
- Montgomery math and uint128_t enabled on Darwin/clang.
0.51 2015-06-21
[ADDED]
- sum_primes(lo,hi) Summation of primes in range
- print_primes(lo,hi[,fd]) Print primes to stdout or fd
- is_catalan_pseudoprime(n) Catalan primality test
- is_frobenius_khashin_pseudoprime(n) Khashin's 2013 Frobenius test
[FUNCTIONALITY AND PERFORMANCE]
- Slightly faster PP sieving using better code from Perlmonks.
- Lucas sequence works with even valued n.
- Used idea from Colin Wright to speed up is_perrin_pseudoprime 5x.
We can check smaller congruent sequences for composites as a prefilter.
- is_frobenius_pseudoprime no longer checks for perfect squares, and
doesn't bail to BPSW if P,Q,D exceed n. This makes it produce some
pseudoprimes it did not before (but ought to have).
[Misc]
- Work with old MPFR (some test failures in older Win32 systems).
- Don't assert in global destructor if a MemFree object is destroyed.
0.50 2015-05-03
[ADDED]
- harmfrac(n) (num,den) of Harmonic number
- harmreal(n) Harmonic number as BigFloat
- sqrtint(n) Integer square root of n
- vecextract(\@arr, mask) Return elements from arr selected by mask
- ramanujan_primes(lo,hi) Ramanujan primes R_n in [lo,hi]
- nth_ramanujan_prime(n) the nth Ramanujan prime R_n
- is_ramanujan_prime(n) 1 if n is a Ramanujan prime, 0 otherwise
[FUNCTIONALITY AND PERFORMANCE]
- Implement single-base hashed M-R for 32-bit inputs, inspired by
Fori禳ek and Jan�ina 2015 as well as last year's tests with
2-base (2^49) and 3-base (2^64) hashed solutions for MPU. Primality
testing is 20-40% faster for this size.
- Small speedups for znlog.
- PP nth_prime on 32-bit fixed for values over 2^32.
[Misc]
- Changes to nth_prime_{lower,upper}. They use the Axler (2013) bounds,
and the XS code will also use inverse prime count bounds for small
values. This gives 2-10x tighter bounds.
- Tighten prime count bounds using Axler, Kotnik, B羹the. Thanks to
Charles R Greathouse IV for pointing me to these.
0.49 2014-11-30
- Make versions the same in all packages.
0.48 2014-11-28
[ADDED]
- lucasu(P, Q, k) U_k for Lucas(P,Q)
- lucasv(P, Q, k) V_k for Lucas(P,Q)
[Misc]
- Use Axler (2014) bounds for prime count where they improve on Dusart.
0.47 2014-11-18
[ADDED]
- is_mersenne_prime(p) returns 1 iff 2^p-1 is prime
[FUNCTIONALITY AND PERFORMANCE]
- Standalone compilation (e.g. factoring without Perl installed) is easier.
- For next_prime and prev_prime with bigints, stay in XS as long as
possible to cut overhead. Up to 1.5x faster.
- Factoring on 64-bit platforms is faster for 32-bit inputs.
- AKS is faster for larger than half-word inputs, especially on 64-bit
machines with gcc's 128-bit types.
- is_provable_prime goes through XS first, so can run *much* faster for
small inputs.
[OTHER]
- NetBSD improperly exports symbols in string.h, including popcount.
Rename our internal function to work around it.
- is_power now takes an optional scalar reference third argument which
will be set to the root if found. It also works for negative n.
- Changes to trim a little memory use. lucas_sequence goes from
PP->[XS,GMP,PP] to XS[->PP[->GMP]]. ecm_factor is moved out of root.
Moved some primality proving logic out of root.
- primes.pl when given one argument will show primes up to that number.
0.46 2014-10-21
[API Changes]
- is_pseudoprime has the same signature as is_strong_pseudoprime now.
This means it requires one or more bases and has no default base.
The documentation had never mentioned the default, so this should
have little impact, and the common signature makes more sense.
[ADDED]
- hammingweight(n) Population count (count binary 1s)
- vecreduce {...} @v Reduce/fold, exactly like List::Util::reduce
[Misc]
- Syntax fix from Salvatore.
- vecmin / vecmax in XS, if overflows UV do via strings to avoid PP.
- Add example for verifying prime gaps, similar to Nicely's cglp4.
- divisor_sum wasn't running XS code for k=0. Refactor PP code,
includes speedup when input is a non-Math::BigInt (e.g. Math::GMP).
- Improve test coverage.
[PP Updates]
- Large speedup for divisors with bigints in 64-100 bit range.
- Revamp RiemannZeta. Fixes some bignum output, but requires RT fixes.
- Optimization for PP comparison to ~0.
- PP factoring is faster, especially for small inputs.
0.45 2014-09-26
[ADDED]
- forcomb { ... } n, k combinations iterator
- forperm { ... } n permutations iterator
- factorial(n) n!
- is_bpsw_prime(n) primality test with no pretests, just ES BPSW
- is_frobenius_pseudoprime Frobenius quadratic primality test
- is_perrin_pseudoprime Perrin primality test (unrestricted)
- vecmin(@list) minimum of list of integers
- vecmax(@list) maximum of list of integers
- vecprod(@list) product of list of integers
- bernfrac(n) (num,den) of Bernoulli number
- bernreal(n) Bernoulli number as BigFloat
- stirling(n,m,[type]) Stirling numbers of first or second kind
- LambertW(k) Solves for W in k = W*exp(W)
- Pi([digits]) Pi as NV or with requested digits
[FUNCTIONALITY AND PERFORMANCE]
- znorder algorithm changed from Das to Cohen for ~1% speedup.
- factoring sped up a bit for 15-19 digits.
- speedup for divisor_sum with very large exponents.
[OTHER]
- Alias added for the module name "ntheory". The module has grown
enough that it seems more appropriate.
- Big build change: Try a GMP compilation and add Math::Prime::Util::GMP
to dependency list if it succeeds.
- Fixed a memory leak in segment_primes / segment_twin_primes introduced
in previous release. Thanks Valgrind!
The Zarith library implements arithmetic and logical operations over
arbitrary precision numbers. It uses GMP to efficiently implement
arithmetic over large numbers. Small integers are represented as Caml
unboxed integers for speed and space economy.