pindakaas

Crates.iopindakaas
lib.rspindakaas
version0.2.0
created_at2022-09-12 01:42:30.462047+00
updated_at2025-09-25 07:57:05.306622+00
descriptionEncoding Integer and Pseudo Boolean constraints into CNF
homepagehttps://github.com/pindakaashq/pindakaas
repositoryhttps://github.com/pindakaashq/pindakaas
max_upload_size
id663312
size403,422
Jip J. Dekker (Dekker1)

documentation

README

pindakaas logo

A library to transform pseudo-Boolean and integer constraints into conjunctive normal form.

Supported Constraints

  • At most one (AMO)
    • Bitwise encoding
    • Ladder encoding
    • Pairwise encoding
  • Cardinality constraints
    • Sorting Network encoding
  • Boolean linear
    • Adder encoding
    • BDD encoding
    • Sequential Weight Counter encoding
    • Totalizer encoding
  • Integer (linear)
    • Direct / Domain / Unary encoding
    • Order encoding
    • Binary encoding

Installation and usage

Although the main Pindakaas library is written in rust, it is also available from Python.

Rust

cargo add pindakaas

For more information about the Rust library, please visit the official documentation.

Python

pip install pindakaas

For more information about the Python library, please visit the official documentation.

Acknowledgements

This research was partially funded by the Australian Government through the Australian Research Council Industrial Transformation Training Centre in Optimisation Technologies, Integrated Methodologies, and Applications (OPTIMA), Project ID IC200100009

License

This library is made available under the MPL-2.0 license.

Commit count: 517

cargo fmt