The subject of
integer partitions
comes up regularly, with multiple threads over the years at
PerlMonks, a big chunk of
Chapter 5 of HigherOrder Perl,
and some pages from
Knuth TAOCP volume 4A.
Last year I added a partitions function to my ntheory Perl module,
for counting integer partitions
(OEIS A000041).
A few months ago I added a partition iterator (forpart) since I liked the one Pari/GP
added last year.
Integer partitions
Solution 
Impl 
Order antilex 
Order lexico 
Restrict count 
Restrict size 
Max in 10s 
Count in 10s 
ntheory 0.45 
XS 
yes 
no 
yes 
yes 
87 
223,000 
ntheory 0.45 
Perl 
yes 
no 
yes 
yes 
72 
7,300 
Integer::Partition 0.05 
Perl 
yes 
yes 
no 
no 
67 
 

Perl 
no 
yes 
no 
no 
62 
6,000 
MJD 2013 
Perl 
no 
no 
no 
no 
71 
 
blokhead 2007 
Perl 
yes 
no 
no 
no 
63 
 
kvale 2004 
Perl 
yes 
no 
no 
no 
62 
 
sfink 2004 
Perl 
yes 
no 
no 
no 
58 
 
tye 2001 
Perl 
no 
no 
no 
no 
58 
 
(golfed, 73 chrs) 
Perl 
no (73) yes(90) 
no 
no 
no 
21 
 

C/Pari 
no 
no 
yes 
yes 
100 
34,000,000 
Performance and memory use are two areas of concern for many libraries.
Last December I made a number of changes in my Math::Prime::Util module
to reduce memory use, and bulk88 helped really tweak some of the XS.
I thought I'd pick a simple task and look at the speed and memory use
of a number of solutions.
isprime from 1 to 10 million
Memory  Time  Solution 
2096k  72.6s  Perl trial division mod 6 
2100k  124.8s  Perl trial division 
3652k  36.2s  Math::GMP 
3940k  14.8s  Math::GMPz 
4040k  1.9s  Math::Prime::Util (no GMP backend) 
4388k  1.9s  Math::Prime::Util (with GMP backend) 
4568k  1.4s  Math::Prime::Util (GMP + precalc) 
4888k  4.4s  Math::Prime::XS 
5316k  245.1s  Math::Primality 
5492k  29.8s  Math::Pari 
6260k  1.5s  Math::Prime::FastSieve 
~16MB  >1 year  regex 
Math::Prime::Util 0.41 was released, with new functions (valuation, invmod, vecsum, binomial, forpart), and the usual crop of performance improvements. In particular, primality testing on x86_64 got another big speedup.
I decided to add a binomial(n,k) function to Math::Prime::Util, and found some interesting things while doing it. Overflow detection and mitigation in C and Perl were the first thing. Next was looking at negative arguments, which led to finding some differences in various solutions as well as filing a bug report for Math::BigInt.
Math::Prime::Util, and the optional Math::Prime::Util::GMP back end, are a set of modules for number theory in Perl, with a large overlap of functionality with PARI/GP. This is an update on some of the things that were new in the April release (0.40 of MPU, 0.19 of MPU::GMP).
The usual speed improvements in various areas, some approximation improvements, and new functions. Primality testing benchmarks also show Perl has state of the art solutions.