OrderedBits: Efficient ordered (by popcount) enumeration of bits

[ bsd3, data, library ] [ Propose Tags ]

This library provides efficient methods to enumerate all elements of a set in order of the population count, or the ordered enumerations of the elements of the powerset of a set. First, the empty set, then all 1-element sets, all 2-element sets, etc. Such enumerations are important for algorithms over unordered data sets. Examples include the travelling salesman problem and the closely related Hamiltonian path problem.

[Skip to Readme]


[Index] [Quick Jump]


Maintainer's Corner

Package maintainers

For package maintainers and hackage trustees


Versions [RSS],,,,,,
Change log changelog.md
Dependencies base (>=4.7 && <5.0), bits (>=0.4), primitive (>=0.5), vector (>=0.11), vector-algorithms (>=0.6) [details]
License BSD-3-Clause
Copyright Christian Hoener zu Siederdissen, 2014 - 2019
Author Christian Hoener zu Siederdissen
Maintainer choener@bioinf.uni-leipzig.de
Category Data
Home page https://github.com/choener/OrderedBits
Bug tracker https://github.com/choener/OrderedBits/issues
Source repo head: git clone git://github.com/choener/OrderedBits
Uploaded by ChristianHoener at 2019-06-14T15:43:39Z
Distributions LTSHaskell:, NixOS:, Stackage:
Reverse Dependencies 4 direct, 33 indirect [details]
Downloads 6095 total (22 in the last 30 days)
Rating (no votes yet) [estimated by Bayesian average]
Your Rating
  • λ
  • λ
  • λ
Status Docs available [build log]
Last success reported on 2019-06-14 [all 1 reports]

Readme for OrderedBits-

[back to package description]

Build Status


The OrderedBits library provides methods to generate unboxed vectors of Ints (and others) ordered by their population count or Hamming distance to the 0 set. In other words, we enumerate the power set of a given input set.

Such an order is important for dynamic programming algorithms for Hamiltonian path problems and the travelling salesman problem.


Christian Hoener zu Siederdissen
Leipzig University, Leipzig, Germany