Revision history for Algorithm-Combinatorics 0.27 Feb 10 2012 * No code changes, just copyright updates. Indicates also the module is not abandoned. 0.26 Jan 28 2011 * Fixes a memory leak in subsets(), thanks to Oliver Seeliger. [closes RT#65207] * Updates Copyright. * README documents now the module itself, better for GitHub. 0.25 Nov 30 2007 * Improved speed of subsets() copying the algorithm in List::PowerSet. 0.24 Jul 14 2007 * Added subsets(). 0.23 May 19 2007 * We do not longer assume indices com to XS as IVs, that broke partitions() in 5.6.2. * Small touches to the code. * Added a few tests. 0.22 May 15 2007 * The previous release was built with Apple's version of tar, which adds some custom extra files that prevent building the module in some systems. I built this one with GNU tar. 0.21 May 14 2007 * Added a directory with some benchmarks. * A maintenance release to indicate the module is maintained. 0.20 June 6 2006 * Jumped version to 0.2x. * Added pointer to Sloane's encyclopedia for the sequence of numbers of circular permutations * Added complete_permutations(). * Simplified explanation of circular permutations. 0.16 June 5 2006 * Added circular_permutations(). * Added some pointers to The On-Line Encyclopedia of Integer Sequences * Added a few more tests for partitions(). 0.15 May 23 2006 * Added partitions(). * Added some comments. 0.14 December 19 2005 * Small rewordings in POD. * Added TAOCP Vol 4, Fasc 3 to REFERENCES. * Added tuples* as alias to variations* to add the nomenclature in Knuth's, Mathematica, etc. to the interface. * Code cleanup. 0.13 November 20 2005 * Added derangements(), code, tests, and docs. * Benchmarked permutations() against permutations() with loop variables declared as registers. No measurable difference. * Removed "install" from the cpan(1) example in README. 0.12 November 13 2005 * DESCRIPTION was reworded. * Refactored as regular XS-based module. 0.11 November 8 2005 * CPAN.pm does not resolve the dependency with Inline before Makefile.PL is executed, and it fails to generate the Makefile because the module Inline::MakeMaker is not found. Due to this ExtUtils::MakeMaker is back. 0.10 November 6 2005 * permutations() has been edited to match Algorithm L from [1] * Added REFERENCES to POD * Added a workaround to Makefile.PL for "No rule to make target ... needed by `pure_all'" so that the Makefile generated by Inline::MakeMaker's WriteInlineMakefile() works, and thus the C part behaves like a plain XS extension instead of generating caches on the user machine 0.08 November 6 2005 * Changed hyphens in test filenames with underscores * The module is known to run under 5.6.2, so the corresponding use VERSION has been added * variations(\@data, $k) is delegated to permutations(\@data) for @data == $k, since permutations() is more efficient * Changed AV* in signatures to SV* plus a cast (SV*) SvRV(array) due to problems reported regarding AVPtrs. I copied the trick from the Changes of Digest::SHA. (Thanks to Aaron Dalton for reporting the problem.) * variations() is much better, almost twice as fast and does not create SVs 0.07 November 5 2005 * Documented the corresponding formulas * Slicing is done now in Perl. The code is much more clear and in my benchmarks no significant difference is measured * The iterator now may receive an initial arrayref (this is private implementation), which simplifies the set up of the iterator when the first tuple is known 0.06 November 5 2005 * permutations() is about 3-4 times faster 0.05 November 4 2005 * Rewrote the test suite, and relevant documentation * Added the helper module t/Tester.pm to factor out a common test code pattern * If k is "out of natural range"" the empty set is returned and a warning is issued * The iterators return an arrayref, and the implementation was revised accordingly to be mathematically correct in edge-cases and more forgiving * I can't stand that DIAGNOSTICS::Errors section, so many croaks on boundary conditions are so unperlish! The module has just a couple of days so I am on time to fix this 0.02 November 3 2005 * README revised * DEPENDENCIES added to POD * DIAGNOSTICS added to POD * VERSION added to POD * Added some code documentation * Minor tweaks on the XS code 0.01 November 2 2005 * First version, released on an unsuspecting world.