It's a time for taking stock. So I'm trying to tidy up the CPAN permutations scene. I've just scheduled Algorithm::PermuteInPlace for deletion: it's a nice module, but it's not worth confusing the CPAN users for.
I've also persuaded Edwin Pratomo to incorporate Algorithm::FastPermute into the latest version of his Algorithm::Permute module. So we'll be back to having just two CPAN permutation modules. (The other is Tom Phoenix's List::Permutor, which is IMHO obviously redundant now.)
I'm sad to have relinquished control of my baby like that, but I think the resulting simplification will be worthwhile. I had a funny email exchange with Edwin while we were talking about combining them. He sent me a mail explaining some benchmarks he'd used, and concluding:
Algorithm::FastPermute: 11 wallclock secs [...]
Algorithm::Permute: 7 wallclock secs [...]
[...]
So still, mine is the fastest :-)
I was confused by that, because I'd done a lot of performance tests, and I was sure that FastPermute lived up to its name. So I looked into the benchmark code, and I found a bug which meant that Permute was only running once, but FastPermute was being run five times on the same data. So I'd say that's a pretty good result :-)