KwCombinatorics library v4.0.0

Rating:        Based on 1 rating
Reviewed:  1 review
Downloads: 1163
Change Set: 77568
Released: Nov 14, 2012
Updated: Nov 26, 2012 by KaseWick
Dev status: Stable Help Icon

Recommended Download

Application KwCombinatorics.dll
application, 29K, uploaded Nov 14, 2012 - 801 downloads

Other Available Downloads

Documentation KwCombinatorics.xml
documentation, 100K, uploaded Nov 14, 2012 - 69 downloads
Documentation KwCombinatorics.chm
documentation, 330K, uploaded Nov 14, 2012 - 137 downloads
Source Code KwCombinatorics-Source-v4.
source code, 38K, uploaded Nov 14, 2012 - 156 downloads

Release Notes

Version 4.0.0

KwCombinatorics v4.0.0 adds support for plain changes and k-permutations to the Permutation class. Also, some minor API changes have been made to all classes.

Plain changes is a table of permutations where adjacent rows differ by only a single swap of two adjacent elements. Support for plain changes is provided by the Permutation.GetRowsOfPlainChanges iterator and the Permutation.PlainRank property.

K-permutations are arrangements that pick fewer elements than the available choices. Support for k-permutations is provided by the Permutation.Choices and Permutation.Picks properties and the Permutation.GetRowsForAllPicks iterator.

Introducing k-permutations has caused many breaking changes (see below). The most problematic change is the removal of the Permutation (int, long) constructor while a similar looking Permutation (int, int) constructor has been introduced. Be advised, code for the prior constructor may compile and run and yet have completely different sematics.

In addition to the breaking changes caused by k-permutation support, all Height properties have been renamed to RowCount and the ICloneable interface has been removed.

The library is now compiled to .NET 4 although it will still compile to .NET 3.5 without error.

Change list
  • Added Permutation.Choices property to support k-permutations.
  • Added Permutation constructors to support k-permutations.
  • Added property Permutation.PlainChange.
  • Added property Permutation.Swaps.
  • Added method Permutation.GetRowsForAllPicks.
  • Added method Permutation.GetRowsOfPlainChanges.
  • BREAKING CHANGE: Renamed all Height properties to RowCount.
  • BREAKING CHANGE: Renamed Permutation.Width to Picks.
  • BREAKING CHANGE: Renamed Permutation.MaxWidth to MaxChoices.
  • BREAKING CHANGE: Renamed Permutation.GetRowsForAllWidths to GetRowsForAllChoices.
  • BREAKING CHANGE: Removed Permutation (int, long) constructor.
  • BREAKING CHANGE: Removed ICloneable base class and Clone methods from all combinatorics.
  • Binary now compiled to .NET 4.0.

Version 3.0.0

This is a placeholder for a possible .NET 3.5 release of v4.

Version 2.4.0

This release significantly speeds up Rank assignments in Combination and Multicombination.

Change list
  • Optimized Combination.Rank setter.
  • Optimized Multicombination.Rank setter.
  • Added methods Combinatoric.BinomialCoefficient, Combinatoric.Factorial.

Version 2.3.0

Change list
  • Added Permutation.Backtrack method.
  • Added N-Queens example programs.
  • Multicombination ranking constructor accepts unsorted data.
  • Combination ranking constructor accepts unsorted data.
  • Fixed numeric overflow bug in Combination.Rank setter.
  • Fixed missing numeric overflow checks in Product constructors.
  • Fixed missing bounds checks in Product ranking constructor.
  • BREAKING CHANGE: Removed increment/decrement operators.

Build environment
  • Development environment is Visual Studio 2010 Ultimate SP1.
  • Unit tests are in MSTest and are located in the Test folder. Code coverage is 100%.
  • Documentation file is HtmlHelp 1.1 made with Sandcastle Help File Builder v1.9.5.0.
  • The source control front-end is AnkhSVN / TortoiseSVN.

Reviews for this release

Very useful library . Thx~
by mgdev on Feb 19 at 1:18 PM