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.1

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.1
File Size Uploaded Provenance
pindakaas-0.6.1.tar.gz 1.1 MB Without provenance Details

Built distributions (wheels)

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

Total release size: 47.4 MB

Release files / pindakaas-0.6.1.tar.gz

Download URL pindakaas-0.6.1.tar.gz
Size 1.1 MB
Tags Source
SHA-256 checksum
How to use checksums
9e4a50e55210247b059ae63576416e12d41b9b58e8947ab54e2044ff91e33627
BLAKE2b-256 checksum
How to use checksums
0ed0c9695cea639307361e51087509ab9731ec3c69046a388671fa0e62a85c2a
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via uv/0.13.1 {"installer":{"name":"uv","version":"0.13.1","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.1-cp39-abi3-win_arm64.whl

Download URL pindakaas-0.6.1-cp39-abi3-win_arm64.whl
Size 1.2 MB
Tags CPython 3.9 Windows ARM64 abi3
SHA-256 checksum
How to use checksums
00acd5fde69f4d7313e25d6e4e5f14668332d1a69de97f5845f8ae5d5ad3e8f1
BLAKE2b-256 checksum
How to use checksums
da3ba198a21294fdaa24026c1d3f03474f631abe0a23dd1cc805b2f90df956de
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via uv/0.13.1 {"installer":{"name":"uv","version":"0.13.1","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.1-cp39-abi3-win_amd64.whl

Download URL pindakaas-0.6.1-cp39-abi3-win_amd64.whl
Size 1.3 MB
Tags CPython 3.9 Windows x86-64 abi3
SHA-256 checksum
How to use checksums
01edd28463b2553f54e132919e84d65058fdbbea59751c9b23d3b28992ff0db3
BLAKE2b-256 checksum
How to use checksums
0a82a0d4686801f9f1e2eaaca4c8c5d765d9be6fddaa0a837af7b4ed21fe206e
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via uv/0.13.1 {"installer":{"name":"uv","version":"0.13.1","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.1-cp39-abi3-win32.whl

Download URL pindakaas-0.6.1-cp39-abi3-win32.whl
Size 1.1 MB
Tags CPython 3.9 Windows x86-32 abi3
SHA-256 checksum
How to use checksums
8292faa774439d628961f950fdbef802feba07ed65f11c2d2c4cacfea55c9780
BLAKE2b-256 checksum
How to use checksums
19f9527ce399ce1073e2e3f44e81675aa6ed43c30ea0aed9113071737b827483
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via uv/0.13.1 {"installer":{"name":"uv","version":"0.13.1","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.1-cp39-abi3-musllinux_1_2_x86_64.whl

Download URL pindakaas-0.6.1-cp39-abi3-musllinux_1_2_x86_64.whl
Size 8.1 MB
Tags CPython 3.9 Linux musl 1.2+ x86-64 abi3
SHA-256 checksum
How to use checksums
cbd882dfd9686df50b3d88beeedf5d0eea576c493cb0242d6952d0b7bf7acb1c
BLAKE2b-256 checksum
How to use checksums
20a2a4f72622e9eb0e953fcee2fa19fa6b32a18ffc8b85bdf0dc16945ca9b65a
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via uv/0.13.1 {"installer":{"name":"uv","version":"0.13.1","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.1-cp39-abi3-musllinux_1_2_i686.whl

Download URL pindakaas-0.6.1-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
43effe281984ad76adccf7b4c2566663bb777a8ee19655950ba29f40c5ebab74
BLAKE2b-256 checksum
How to use checksums
8ba7f42f1ef958cf76d30baf8f438d8db1215625657e207da2a7c423f3bf6c40
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via uv/0.13.1 {"installer":{"name":"uv","version":"0.13.1","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.1-cp39-abi3-musllinux_1_2_armv7l.whl

Download URL pindakaas-0.6.1-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
e53be2633fcd9a0e42236233d0cba4ed757a883aff850537176462ab29f072da
BLAKE2b-256 checksum
How to use checksums
84d9e2e2f839b127d34b80de296a24b3600c5ebe0712f3920fdc88b08ff5e99b
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via uv/0.13.1 {"installer":{"name":"uv","version":"0.13.1","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.1-cp39-abi3-musllinux_1_2_aarch64.whl

Download URL pindakaas-0.6.1-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
0cfbf5f88dbd056b5395b2337cecce2e875b89973beb500dfb6138080bf2cd5f
BLAKE2b-256 checksum
How to use checksums
4d2ec8c59265d524064ae946e5abce1566ce10c50f51b75a49c0fb68c3136b4a
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via uv/0.13.1 {"installer":{"name":"uv","version":"0.13.1","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.1-cp39-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl

Download URL pindakaas-0.6.1-cp39-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Size 1.4 MB
Tags CPython 3.9 Linux glibc 2.17+ x86-64 abi3
SHA-256 checksum
How to use checksums
3c2cf7aeaa729bcc194e3b247c1048019f33e4f12b86b798d28ad888fe5d6d05
BLAKE2b-256 checksum
How to use checksums
c6bce2c130ffde3ed9a27b8c9591d9bbd50704e4a5e992b1265b210bff7a0ebb
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via uv/0.13.1 {"installer":{"name":"uv","version":"0.13.1","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.1-cp39-abi3-manylinux_2_17_s390x.manylinux2014_s390x.whl

Download URL pindakaas-0.6.1-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
47e3219063efddb6f6ebd42ecefeb332ca4e31d633d23667bbd4c578e109fef2
BLAKE2b-256 checksum
How to use checksums
4e2c9a6d758354fc8afea7b4d97ba042aae520b6b0bd78b974f31467d586dce0
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via uv/0.13.1 {"installer":{"name":"uv","version":"0.13.1","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.1-cp39-abi3-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl

Download URL pindakaas-0.6.1-cp39-abi3-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl
Size 1.5 MB
Tags CPython 3.9 Linux glibc 2.17+ PowerPC 64-le abi3
SHA-256 checksum
How to use checksums
669988513830dbb11031311dc3709c1ffe8a9473b31bb87236d83b8bb250806c
BLAKE2b-256 checksum
How to use checksums
6b62dcd39615b6a2d3a7b8e2e4f719df0665b3b259fff97b9b51476bc1ddc20b
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via uv/0.13.1 {"installer":{"name":"uv","version":"0.13.1","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.1-cp39-abi3-manylinux_2_17_i686.manylinux2014_i686.whl

Download URL pindakaas-0.6.1-cp39-abi3-manylinux_2_17_i686.manylinux2014_i686.whl
Size 1.5 MB
Tags CPython 3.9 Linux glibc 2.17+ x86-32 abi3
SHA-256 checksum
How to use checksums
04f0d090a815d3db514bbb34158a3e719363458f6098c7ee052e1911a65af55f
BLAKE2b-256 checksum
How to use checksums
74f50c02dfb366d46b762f2a6fe5d9c1b0c0e9b1d96993eda89706ca73b76c19
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via uv/0.13.1 {"installer":{"name":"uv","version":"0.13.1","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.1-cp39-abi3-manylinux_2_17_armv7l.manylinux2014_armv7l.whl

Download URL pindakaas-0.6.1-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
674ca1a138eaedfb7d96710332cebd392e7e86118eba3cfff3ab64ef0456dd72
BLAKE2b-256 checksum
How to use checksums
bdb5ccb057f98e506b077f7f5e242f28233baa9ea8ce415c3b7f750d382d1b7b
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via uv/0.13.1 {"installer":{"name":"uv","version":"0.13.1","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.1-cp39-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl

Download URL pindakaas-0.6.1-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
2ac9920b119fa4355132884b0031b1c5250716a3f8fd6da1995852609e5ab164
BLAKE2b-256 checksum
How to use checksums
5655afa7a0c24208e212eacd23cd4a98c65b31c31220294c282c3a069886105c
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via uv/0.13.1 {"installer":{"name":"uv","version":"0.13.1","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.1-cp39-abi3-macosx_11_0_arm64.whl

Download URL pindakaas-0.6.1-cp39-abi3-macosx_11_0_arm64.whl
Size 1.3 MB
Tags CPython 3.9 abi3 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
a4f53adb32550d43e7d4ddfee7529dae48876314430c7481011ef8031f260227
BLAKE2b-256 checksum
How to use checksums
0e2e7c278cef6be14e4b118175a899d1c73e1fcf534527c761341fb22bc010a9
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via uv/0.13.1 {"installer":{"name":"uv","version":"0.13.1","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.1-cp39-abi3-macosx_10_12_x86_64.whl

Download URL pindakaas-0.6.1-cp39-abi3-macosx_10_12_x86_64.whl
Size 1.4 MB
Tags CPython 3.9 abi3 macOS 10.12+ x86-64
SHA-256 checksum
How to use checksums
2a8fb3a276c55734d7425455cdb0559e2411fd2359124436fe1870416b0880c0
BLAKE2b-256 checksum
How to use checksums
b9c9f3f9e234e0f15313f25a775b5bf8c9a3d8ced3b52f01e390c726deb3a05c
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via uv/0.13.1 {"installer":{"name":"uv","version":"0.13.1","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}

Security for pindakaas 0.6.1

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

No provenance found

None of the files in this release were uploaded with provenance metadata.

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

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