Skip to main content

pindakaas logo

Rust encodings of integer and pseudo-Boolean constraints into CNF.

Encodings

A constraint is aggregated into a sum of terms, each an integer variable scaled by a coefficient, before any encoder sees it. A term may stand for a single literal, for a group of literals only one of which may hold, or for an integer variable — so each encoder below covers several named encodings from the literature at once. Which, and under what condition — with propagation strength and a reference for each — is tabulated in the encodings reference.

Encoder Takes Propagation
AdderEncoder linear, cardinality, at-most-one, count neither
DecisionDiagramEncoder linear, cardinality, at-most-one, count domain consistent
TotalizerEncoder linear, cardinality, at-most-one, count domain consistent
SequentialCounterEncoder linear, cardinality, at-most-one, count domain consistent
MixedRadixEncoder linear, cardinality, at-most-one, count neither
WatchdogEncoder linear, cardinality, at-most-one, count consistency-checking, or domain consistent in its local form
SortingNetworkEncoder cardinality, at-most-one, count domain consistent
PairwiseEncoder, LadderEncoder, BitwiseEncoder, ProductEncoder at-most-one see the reference
TseitinEncoder propositional formulas —

Integer variables acquire direct, order, or binary views when an encoder needs them and channel between views when more than one is used.

Installation and usage

The Rust crate and Python package expose the same constraint encodings.

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.

Citation

If you want to cite Pindakaas please use our general software citation, in addition to any citation to a specific version or paper:

@software{Pindakaas,
author = {Bierlee, Hendrik and Dekker, Jip J.},
license = {MPL-2.0},
title = {{Pindakaas}},
url = {https://doi.org/10.5281/zenodo.10851855},
doi = {10.5281/zenodo.10851855},
}

Note that you might have to use misc instead of software, if your system does not support software as a type.

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.

Metadata

Release files for pindakaas 0.6.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for pindakaas 0.6.0
File Size Uploaded
pindakaas-0.6.0.tar.gz 1.1 MB Details

Built distributions (wheels)

Table of built distributions (wheels) for pindakaas 0.6.0
File
pindakaas-0.6.0-cp39-abi3-win_arm64.whl CPython 3.9 abi3 Windows ARM64 Details
pindakaas-0.6.0-cp39-abi3-win_amd64.whl CPython 3.9 abi3 Windows x86-64 Details
pindakaas-0.6.0-cp39-abi3-win32.whl CPython 3.9 abi3 Windows x86-32 Details
pindakaas-0.6.0-cp39-abi3-musllinux_1_2_x86_64.whl CPython 3.9 abi3 Linux musl 1.2+ x86-64 Details
pindakaas-0.6.0-cp39-abi3-musllinux_1_2_i686.whl CPython 3.9 abi3 Linux musl 1.2+ x86-32 Details
pindakaas-0.6.0-cp39-abi3-musllinux_1_2_armv7l.whl CPython 3.9 abi3 Linux musl 1.2+ ARMv7l Details
pindakaas-0.6.0-cp39-abi3-musllinux_1_2_aarch64.whl CPython 3.9 abi3 Linux musl 1.2+ ARM64 Details
pindakaas-0.6.0-cp39-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl CPython 3.9 abi3 Linux glibc 2.17+ x86-64 Details
pindakaas-0.6.0-cp39-abi3-manylinux_2_17_s390x.manylinux2014_s390x.whl CPython 3.9 abi3 Linux glibc 2.17+ IBM System/390x Details
pindakaas-0.6.0-cp39-abi3-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl CPython 3.9 abi3 Linux glibc 2.17+ PowerPC 64-le Details
pindakaas-0.6.0-cp39-abi3-manylinux_2_17_i686.manylinux2014_i686.whl CPython 3.9 abi3 Linux glibc 2.17+ x86-32 Details
pindakaas-0.6.0-cp39-abi3-manylinux_2_17_armv7l.manylinux2014_armv7l.whl CPython 3.9 abi3 Linux glibc 2.17+ ARMv7l Details
pindakaas-0.6.0-cp39-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl CPython 3.9 abi3 Linux glibc 2.17+ ARM64 Details
pindakaas-0.6.0-cp39-abi3-macosx_11_0_arm64.whl CPython 3.9 abi3 macOS 11.0+ ARM64 Details
pindakaas-0.6.0-cp39-abi3-macosx_10_12_x86_64.whl CPython 3.9 abi3 macOS 10.12+ x86-64 Details

Total release size: 46.5 MB

Release files / pindakaas-0.6.0.tar.gz

Download URL pindakaas-0.6.0.tar.gz
Size 1.1 MB
Tags Source
SHA-256 checksum
How to use checksums
13f359613680b366858e2a3f4944d49a9909863c5f62b1a5a909cd998d6a64ef
BLAKE2b-256 checksum
How to use checksums
9ce1eae441b086854f9f9c6dc90bc825584aa2afc90a2a52167340b77927f6a1
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via uv/0.13.0 {"installer":{"name":"uv","version":"0.13.0","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

Release files / pindakaas-0.6.0-cp39-abi3-win_arm64.whl

Download URL pindakaas-0.6.0-cp39-abi3-win_arm64.whl
Size 1.1 MB
Tags CPython 3.9 Windows ARM64 abi3
SHA-256 checksum
How to use checksums
53678084aa957c9c1471420b33b6afc7e9f4661fb7428ed0b17d83e40a314b62
BLAKE2b-256 checksum
How to use checksums
5e78f4f97a56c847ac26bff6fa425a311b75279e42d429a59e3d476005872d16
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via uv/0.13.0 {"installer":{"name":"uv","version":"0.13.0","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

Release files / pindakaas-0.6.0-cp39-abi3-win_amd64.whl

Download URL pindakaas-0.6.0-cp39-abi3-win_amd64.whl
Size 1.3 MB
Tags CPython 3.9 Windows x86-64 abi3
SHA-256 checksum
How to use checksums
da6073561a601a82d67822cdf337c2fca19ef92b9a8569c846d2435819db62d1
BLAKE2b-256 checksum
How to use checksums
3c7bb52d86717df9feebd0df3727a6a570aabdce7478f73474d4656e56774f32
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via uv/0.13.0 {"installer":{"name":"uv","version":"0.13.0","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

Release files / pindakaas-0.6.0-cp39-abi3-win32.whl

Download URL pindakaas-0.6.0-cp39-abi3-win32.whl
Size 1.1 MB
Tags CPython 3.9 Windows x86-32 abi3
SHA-256 checksum
How to use checksums
92618a5d28611cf1fb2bf2cfad838b9666fbbec69414c9d48c1439eb3a6e787e
BLAKE2b-256 checksum
How to use checksums
dc9aaff515d4269de1d0b273b45f3eb7bd4b1ca6554eea50550928855e553727
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via uv/0.13.0 {"installer":{"name":"uv","version":"0.13.0","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

Release files / pindakaas-0.6.0-cp39-abi3-musllinux_1_2_x86_64.whl

Download URL pindakaas-0.6.0-cp39-abi3-musllinux_1_2_x86_64.whl
Size 8.0 MB
Tags CPython 3.9 Linux musl 1.2+ x86-64 abi3
SHA-256 checksum
How to use checksums
1b1cf8af025b49765befa410c4ad1e58ea22de90735ad31b3d7e12ca6d0f036f
BLAKE2b-256 checksum
How to use checksums
84c0ede096784b7844e0563ddca7b03ca49215ba716fd1ddc85215fc880e67ee
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via uv/0.13.0 {"installer":{"name":"uv","version":"0.13.0","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

Release files / pindakaas-0.6.0-cp39-abi3-musllinux_1_2_i686.whl

Download URL pindakaas-0.6.0-cp39-abi3-musllinux_1_2_i686.whl
Size 8.0 MB
Tags CPython 3.9 Linux musl 1.2+ x86-32 abi3
SHA-256 checksum
How to use checksums
f7c81eac16dc48ead36b2e75a64bad839ec8aa5af2399114b1deafea4b816d50
BLAKE2b-256 checksum
How to use checksums
66d6a259181ca0d5426e6a8031e20ad8f937a7cbba68f33d7dc43e154d1db96a
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via uv/0.13.0 {"installer":{"name":"uv","version":"0.13.0","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

Release files / pindakaas-0.6.0-cp39-abi3-musllinux_1_2_armv7l.whl

Download URL pindakaas-0.6.0-cp39-abi3-musllinux_1_2_armv7l.whl
Size 7.7 MB
Tags CPython 3.9 Linux musl 1.2+ ARMv7l abi3
SHA-256 checksum
How to use checksums
f81061df0736fa9a28f73c7c7feae7727de22c7407f05c43e1a875a123cd06e3
BLAKE2b-256 checksum
How to use checksums
f6cd7c675ecabcb9600c4558bff4a2f26deb9f1626073ca13aee7e4be76d2624
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via uv/0.13.0 {"installer":{"name":"uv","version":"0.13.0","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

Release files / pindakaas-0.6.0-cp39-abi3-musllinux_1_2_aarch64.whl

Download URL pindakaas-0.6.0-cp39-abi3-musllinux_1_2_aarch64.whl
Size 7.7 MB
Tags CPython 3.9 Linux musl 1.2+ ARM64 abi3
SHA-256 checksum
How to use checksums
bb934c5f91ff3610cfe148f6cd580a6899b4d837b523f7fdbcc0263685695ff1
BLAKE2b-256 checksum
How to use checksums
bb907dcee4e4b28d882dd3a92d84bd0e9b5b60f3c1b19e01067b37d2b789709c
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via uv/0.13.0 {"installer":{"name":"uv","version":"0.13.0","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

Release files / pindakaas-0.6.0-cp39-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl

Download URL pindakaas-0.6.0-cp39-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Size 1.3 MB
Tags CPython 3.9 Linux glibc 2.17+ x86-64 abi3
SHA-256 checksum
How to use checksums
49e025b3dc01aa4b6b9243746eb9e22ae77397a55d33d42e7c96a45baf88476c
BLAKE2b-256 checksum
How to use checksums
5533e7ea4d3cbd3c8f8efd1e96e2716990742521bfda683cb11b04b70c271eef
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via uv/0.13.0 {"installer":{"name":"uv","version":"0.13.0","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

Release files / pindakaas-0.6.0-cp39-abi3-manylinux_2_17_s390x.manylinux2014_s390x.whl

Download URL pindakaas-0.6.0-cp39-abi3-manylinux_2_17_s390x.manylinux2014_s390x.whl
Size 1.5 MB
Tags CPython 3.9 Linux glibc 2.17+ IBM System/390x abi3
SHA-256 checksum
How to use checksums
dde1567f438dae48a2b98401a69edae55c92019061985efba0a101fa0fc28b04
BLAKE2b-256 checksum
How to use checksums
9efda355e5a69170ed6e05e21fb8f84b886cf8598319c7ffc06ad8050283cb0f
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via uv/0.13.0 {"installer":{"name":"uv","version":"0.13.0","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

Release files / pindakaas-0.6.0-cp39-abi3-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl

Download URL pindakaas-0.6.0-cp39-abi3-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl
Size 1.4 MB
Tags CPython 3.9 Linux glibc 2.17+ PowerPC 64-le abi3
SHA-256 checksum
How to use checksums
7f818585085651bdc4cb3a1047097d572b93b440be2949f278483baaeca33f00
BLAKE2b-256 checksum
How to use checksums
a23b67387f114b97289e9353f55a563b90e49cef096e66223565c9f187509489
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via uv/0.13.0 {"installer":{"name":"uv","version":"0.13.0","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

Release files / pindakaas-0.6.0-cp39-abi3-manylinux_2_17_i686.manylinux2014_i686.whl

Download URL pindakaas-0.6.0-cp39-abi3-manylinux_2_17_i686.manylinux2014_i686.whl
Size 1.4 MB
Tags CPython 3.9 Linux glibc 2.17+ x86-32 abi3
SHA-256 checksum
How to use checksums
801fe95f9eec38a8e60b0eeaa396799a5fc70c9390ad7e6544e48323a8843447
BLAKE2b-256 checksum
How to use checksums
61b2d40b2d7f51ea1bc716dd966ceceeb9bada166c3782ce65bb6d0135eadc01
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via uv/0.13.0 {"installer":{"name":"uv","version":"0.13.0","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

Release files / pindakaas-0.6.0-cp39-abi3-manylinux_2_17_armv7l.manylinux2014_armv7l.whl

Download URL pindakaas-0.6.0-cp39-abi3-manylinux_2_17_armv7l.manylinux2014_armv7l.whl
Size 1.3 MB
Tags CPython 3.9 Linux glibc 2.17+ ARMv7l abi3
SHA-256 checksum
How to use checksums
f8d580e5a95bb01c19a0b17c6b8daf60dd7c61b5e490c2c31d4fc672d8a9368e
BLAKE2b-256 checksum
How to use checksums
4f492556e7c82d18f5d1f1fbc5de02f0a5cb1003fe74a2109644267341450e28
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via uv/0.13.0 {"installer":{"name":"uv","version":"0.13.0","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

Release files / pindakaas-0.6.0-cp39-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl

Download URL pindakaas-0.6.0-cp39-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Size 1.3 MB
Tags CPython 3.9 Linux glibc 2.17+ ARM64 abi3
SHA-256 checksum
How to use checksums
3b98b47444f5281d25b2e422aa16461fb07af140047e54550d2d2a95ef64cfc6
BLAKE2b-256 checksum
How to use checksums
583447667413257bfb2197eee880ac82cde8bccaa50dd8028a4b77c9ae468e5a
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via uv/0.13.0 {"installer":{"name":"uv","version":"0.13.0","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

Release files / pindakaas-0.6.0-cp39-abi3-macosx_11_0_arm64.whl

Download URL pindakaas-0.6.0-cp39-abi3-macosx_11_0_arm64.whl
Size 1.2 MB
Tags CPython 3.9 abi3 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
0106dcbcfd0ef77df614cd4138c6519ac2419c2ba92483489d352bdfd56b0c27
BLAKE2b-256 checksum
How to use checksums
ad9f6197e1c8a9b1dd1c102648e9462101a5930313ce0f957e87bbbd33c8558b
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via uv/0.13.0 {"installer":{"name":"uv","version":"0.13.0","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

Release files / pindakaas-0.6.0-cp39-abi3-macosx_10_12_x86_64.whl

Download URL pindakaas-0.6.0-cp39-abi3-macosx_10_12_x86_64.whl
Size 1.3 MB
Tags CPython 3.9 abi3 macOS 10.12+ x86-64
SHA-256 checksum
How to use checksums
967575b07b3ccfccdd8646d2fed260ce849b1942e79922f3b9f27301286db528
BLAKE2b-256 checksum
How to use checksums
1841aa6fd7181d7c777571d443c3f1576e1f031f5d7f4b04c2be7acf9de915c0
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via uv/0.13.0 {"installer":{"name":"uv","version":"0.13.0","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

Release history Release notifications | RSS feed

This release

0.6.0 This release

16 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page