# Welcome to Constraining Order’s documentation!¶

Constraining Order is a pure python library for solving certain classes of constraint satisfaction problems (CSP). In particular it contains an implementation of IntervalSets to represent fairly general sets of real numbers.

Constraining Order works (at least) with Python 2.7, 3.4 and PyPy and is licensed under the MIT license.

Constraining Order is relatively flexible in the sense that many CSPs can be quickly modeled and new constraints can be implemented very easily. However it is not tuned towards high performance.

For serious problems there are much more powerful solutions available:

- gecode (which looks amazing and superbly documented)
- or-tools
- choco
- or one of the many specialized constraint programming languages

For python there are several packages for constraint satisfaction problems:

- ortools
- gecode-python outdated, inactive
- logilab-constraints sparse documentation, inactive
- pyconstraints sparse documentation, inactive

For a nice overview over the theoretical foundations, see e.g. [Tsang96].

The code is hosted on GitHub:

https://github.com/jreinhardt/constraining-order

Contents:

API Reference: