Skip to content

Commit

Permalink
import Algorithm::Combinatorics into github
Browse files Browse the repository at this point in the history
  • Loading branch information
fxn committed Jan 6, 2009
1 parent 1c73c65 commit 0242902
Show file tree
Hide file tree
Showing 28 changed files with 3,204 additions and 0 deletions.
174 changes: 174 additions & 0 deletions Changes
@@ -0,0 +1,174 @@
Revision history for Algorithm-Combinatorics

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.

0 comments on commit 0242902

Please sign in to comment.