Skip to content

Latest commit

 

History

History
75 lines (51 loc) · 2.95 KB

CHANGELOG.md

File metadata and controls

75 lines (51 loc) · 2.95 KB

1.3 (1st Oct 2015)

Features

  • Added support for secondary columns
    • Added four new Solve overloads that have an additional parameter - numPrimaryColumns
    • Created two new demo programs using secondary columns:
  • Updated the C# and F# property tests to use FsCheck 2.x

1.2 (18th Feb 2015)

Features

  • Added new Solve method overloads allowing the caller to pass an arbitrary data structure representing the matrix to replace the one added in DlxLib 1.1 (see breaking changes below). The new overloads are easier to use than their predecessor. The new overloads have the following signatures:
public IEnumerable<Solution> Solve<TData, TRow, TCol>(
    TData data,
    Func<TData, IEnumerable<TRow>> iterateRows,
    Func<TRow, IEnumerable<TCol>> iterateCols)

public IEnumerable<Solution> Solve<TData, TRow, TCol>(
    TData data,
    Func<TData, IEnumerable<TRow>> iterateRows,
    Func<TRow, IEnumerable<TCol>> iterateCols,
    Func<TCol, bool> predicate)
  • All Solve method overloads now yield solutions as they are found. Previously, the internal search algorithm would find all solutions before returning. If only the first solution was required, clients would have to handle the SolutionFound event and cancel the solving process. Now, clients can just use .First() or .Take(1) etc.
  • Added XML documentation comments.
  • Added online MSDN-style documentation that was built from the XML documentation comments using Sandcastle Help File Builder.

Breaking Changes

  • Removed the Cancel method that was marked obsolete in DlxLib 1.1.
  • Removed the Solve method overload with the following signature:
public IEnumerable<Solution> Solve(bool[,] matrix)

because it is unnecessary due to the following overload when T is a bool:

public IEnumerable<Solution> Solve<T>(T[,] matrix)
  • Removed the following Solve method overload because it was unnecessarily complicated (what was I smoking ?!?):
public IEnumerable<Solution> Solve<TData, TRow, TCol>(
    TData data,
    Action<TData, Action<TRow>> iterateRows,
    Action<TRow, Action<TCol>> iterateCols,
    Func<TCol, bool> predicate)

1.1 (8th Nov 2013)

Features

  • Added a Dlx constructor taking a CancellationToken because this is a more idiomatic way to provide support for cancellation in .NET.
  • Marked the Cancel method as obsolete.
  • Added a Solve method overload allowing the caller to pass an arbitrary data structure representing the matrix along with a couple of actions to iterate rows and columns and a predicate.

1.0 (8th Aug 2013)

Features

  • Initial release