# Change log for the `set-cover` package
## 0.1
* `SetCover.Exact.decisionTree`, `SetCover.Exact.Priority.decisionTree`:
Allow the programmer to generate human-friendly solutions.
* `SetCover.Cuboid`: `dx`, `dy`, `dz` -> `rotX`, `rotY`, `rotZ`
* `SetCover.Bit`: method `complement` replaced by `difference`.
This way, we do not need the cumbersome `SetCover.IntSet` module anymore.
* `SetCover.BitMap` made private.
* `SetCover.BitPriorityQueue` made public.
* `SetCover.Exact.State.usedSubsets`: Only store labels, not assignments.
This is consistent with `SetCover.Exact.Priority.State`.
* `SetCover.Exact.minimize`: allow an empty list of available subsets
`SetCover.Exact.step`, `SetCover.Exact.Priority.step`:
They do not need to test for an empty `availableSubset` anymore.
* `SetCover.Exact.step`: Require non-empty set of free elements.
This is consistent with `SetCover.Exact.Priority.step`.
Until now, `step` returned an empty list if the were no free elements.
This is not very helpful
since it will throw away already completed solutions.
The test is also redundant when `step` is called from `search`.
## 0.0.8
* `SetCover.Exact.Priority` implements the Algorithm X
using a priority queue that registers the sets
each element is contained in.
This allows for drastic speedup of the `Nonogram` example.
## 0.0.7
* `ESC.bitVectorFromSetAssigns` allows to turn sets
into bit vectors without manual bit position gymnastics.
* Use it in `Sudoku` and `Nonogram` examples.
## 0.0.6
* Add `SetCover.Exact.Set` instances for `Map`, `Integer`, `IntSet`.
## 0.0.5.1
* `example/Nonogram`: explore different encodings of the problem