Skip to main content

Multi-Valued Sentential Decision Diagrams — a knowledge-compilation library with k-ary categorical fan-out at vtree leaves

Project description

mv-sdd

Multi-valued sentential decision diagrams for Python, backed by a C99 core and exposed through Cython bindings.

The public Python package is mv-sdd; the import package is pymvsdd.

Installation

pip install mv-sdd

The source distribution includes the libmvsdd C sources needed to build the extension, so users do not need to run make -C libmvsdd before installing.

Minimal Example

from pymvsdd import Manager, Vtree

vtree = Vtree.right_linear([2, 2])
manager = Manager(vtree)

# Empty CNF over two Boolean variables has 4 models.
node = manager.compile_cnf([])
print(node.model_count())

Repository Layout

  • libmvsdd/ contains the C99 core and C tests.
  • pymvsdd/ contains the Cython bindings shipped in the wheel.
  • pymvsdd_ref/ contains the pure-Python reference implementation used by tests.

Benchmark harnesses, paper drafts, third-party source copies, and local research artifacts are intentionally not part of the public repository.

Development

uv venv
uv pip install -e ".[dev]"
make test

Useful targets:

make all      # build libmvsdd and install the editable binding
make test     # pytest plus libmvsdd C tests
make clean    # remove local build artifacts

Release

Local validation:

uv run --with build python -m build
uv run --with twine python -m twine check dist/*
python -m venv /tmp/mv-sdd-wheel-test
/tmp/mv-sdd-wheel-test/bin/python -m pip install dist/mv_sdd-*.whl
/tmp/mv-sdd-wheel-test/bin/python -c "from pymvsdd import Vtree, Manager; vt = Vtree.right_linear([2, 2]); print(Manager(vt).compile_cnf([]).model_count())"

GitHub Actions builds the sdist and CPython 3.10-3.13 wheels for Linux and macOS with cibuildwheel. Pushing a v* tag publishes checked artifacts to PyPI through Trusted Publishing, using the repository's pypi environment.

License

Apache-2.0. See LICENSE.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

mv_sdd-0.1.0b1.tar.gz (140.4 kB view details)

Uploaded Source

Built Distributions

If you're not sure about the file name format, learn more about wheel file names.

mv_sdd-0.1.0b1-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl (388.9 kB view details)

Uploaded CPython 3.13manylinux: glibc 2.17+ x86-64manylinux: glibc 2.28+ x86-64

mv_sdd-0.1.0b1-cp313-cp313-macosx_11_0_arm64.whl (162.2 kB view details)

Uploaded CPython 3.13macOS 11.0+ ARM64

mv_sdd-0.1.0b1-cp313-cp313-macosx_10_13_x86_64.whl (167.5 kB view details)

Uploaded CPython 3.13macOS 10.13+ x86-64

mv_sdd-0.1.0b1-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl (392.2 kB view details)

Uploaded CPython 3.12manylinux: glibc 2.17+ x86-64manylinux: glibc 2.28+ x86-64

mv_sdd-0.1.0b1-cp312-cp312-macosx_11_0_arm64.whl (162.8 kB view details)

Uploaded CPython 3.12macOS 11.0+ ARM64

mv_sdd-0.1.0b1-cp312-cp312-macosx_10_13_x86_64.whl (168.1 kB view details)

Uploaded CPython 3.12macOS 10.13+ x86-64

mv_sdd-0.1.0b1-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl (380.2 kB view details)

Uploaded CPython 3.11manylinux: glibc 2.17+ x86-64manylinux: glibc 2.28+ x86-64

mv_sdd-0.1.0b1-cp311-cp311-macosx_11_0_arm64.whl (162.5 kB view details)

Uploaded CPython 3.11macOS 11.0+ ARM64

mv_sdd-0.1.0b1-cp311-cp311-macosx_10_9_x86_64.whl (167.2 kB view details)

Uploaded CPython 3.11macOS 10.9+ x86-64

mv_sdd-0.1.0b1-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl (368.5 kB view details)

Uploaded CPython 3.10manylinux: glibc 2.17+ x86-64manylinux: glibc 2.28+ x86-64

mv_sdd-0.1.0b1-cp310-cp310-macosx_11_0_arm64.whl (162.4 kB view details)

Uploaded CPython 3.10macOS 11.0+ ARM64

mv_sdd-0.1.0b1-cp310-cp310-macosx_10_9_x86_64.whl (167.0 kB view details)

Uploaded CPython 3.10macOS 10.9+ x86-64

File details

Details for the file mv_sdd-0.1.0b1.tar.gz.

File metadata

  • Download URL: mv_sdd-0.1.0b1.tar.gz
  • Upload date:
  • Size: 140.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for mv_sdd-0.1.0b1.tar.gz
Algorithm Hash digest
SHA256 97e1934fafb498ac3856b33e00384a99f7fef3076a87ab79f173b85ccc8ae97e
MD5 bb4878bd419a4c5fa898afa455ee9b51
BLAKE2b-256 cc3afd0d701f1b8be3e3df23856fef1f199ec9814986d7d36e73455d230d763b

See more details on using hashes here.

Provenance

The following attestation bundles were made for mv_sdd-0.1.0b1.tar.gz:

Publisher: wheels.yml on rmanhaeve/mv-sdd

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file mv_sdd-0.1.0b1-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for mv_sdd-0.1.0b1-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 ce200b9bb026dc706d1fcd9a0f5980db82fed0d8f14d9213b24b0e014318a25d
MD5 e39f64bbcc5e9229ceabb18ab3b57b16
BLAKE2b-256 458f0ab62bfc521af917614c5f4950daf8249c79afba16771bf860b41f080a00

See more details on using hashes here.

Provenance

The following attestation bundles were made for mv_sdd-0.1.0b1-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl:

Publisher: wheels.yml on rmanhaeve/mv-sdd

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file mv_sdd-0.1.0b1-cp313-cp313-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for mv_sdd-0.1.0b1-cp313-cp313-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 509793d5a1d972e4e6d9a21be02e54b4f29354356a5edad363b74e4f17c8afb1
MD5 ea039d85d97d8311bf68e2615b89625a
BLAKE2b-256 7315a067198615995491bcc3b229f073c3b6517220d65f309cb477c40f5d0da5

See more details on using hashes here.

Provenance

The following attestation bundles were made for mv_sdd-0.1.0b1-cp313-cp313-macosx_11_0_arm64.whl:

Publisher: wheels.yml on rmanhaeve/mv-sdd

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file mv_sdd-0.1.0b1-cp313-cp313-macosx_10_13_x86_64.whl.

File metadata

File hashes

Hashes for mv_sdd-0.1.0b1-cp313-cp313-macosx_10_13_x86_64.whl
Algorithm Hash digest
SHA256 2549f6e654297595b9eb285b1316b42e74e1de856b561770908ac82743b7b1ff
MD5 02a8bbfde05fa9b7edca9cb662c623bf
BLAKE2b-256 325566c19145e5796097c8c4f2d3b0b7b718e278165e322fbcf542388787ea4a

See more details on using hashes here.

Provenance

The following attestation bundles were made for mv_sdd-0.1.0b1-cp313-cp313-macosx_10_13_x86_64.whl:

Publisher: wheels.yml on rmanhaeve/mv-sdd

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file mv_sdd-0.1.0b1-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for mv_sdd-0.1.0b1-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 5403173f2c5dfee09b0213e129c37f14a1a8008f859fa6263188af566ed7e405
MD5 48cd5ccb605b329a7232d74141dd9476
BLAKE2b-256 087c51b99e94ec91ee43ef93c260bdb93df79610128c86cd87551fc30e6d131d

See more details on using hashes here.

Provenance

The following attestation bundles were made for mv_sdd-0.1.0b1-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl:

Publisher: wheels.yml on rmanhaeve/mv-sdd

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file mv_sdd-0.1.0b1-cp312-cp312-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for mv_sdd-0.1.0b1-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 58af52c7de6c07f8ddb64dddf9f43c0bdde12097bbf4186d2b774a19afae160b
MD5 4b996ec2d0cbed444dd0c2b107aec1ae
BLAKE2b-256 9df7a4bb2ccc06bf5a3f6bc64529212d7a839efc879e4aab709c683dc2462daa

See more details on using hashes here.

Provenance

The following attestation bundles were made for mv_sdd-0.1.0b1-cp312-cp312-macosx_11_0_arm64.whl:

Publisher: wheels.yml on rmanhaeve/mv-sdd

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file mv_sdd-0.1.0b1-cp312-cp312-macosx_10_13_x86_64.whl.

File metadata

File hashes

Hashes for mv_sdd-0.1.0b1-cp312-cp312-macosx_10_13_x86_64.whl
Algorithm Hash digest
SHA256 eda3c347451513b5b2f2d04f04323b2120dd5988e7eb3b534dcd95f64f8e22fb
MD5 387889381b0627a8f18c67a2ac6355ed
BLAKE2b-256 26b2d04850bf90613c9517fddc054e6e8d153a58434ed21547b177679d8a5ab4

See more details on using hashes here.

Provenance

The following attestation bundles were made for mv_sdd-0.1.0b1-cp312-cp312-macosx_10_13_x86_64.whl:

Publisher: wheels.yml on rmanhaeve/mv-sdd

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file mv_sdd-0.1.0b1-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for mv_sdd-0.1.0b1-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 030f7578df2f43b7ff3deefa126dcfdf98ec1b472cb3a4e35c1bea502e0ac9ec
MD5 adf4c957e2af79f802fb3837a71e76e4
BLAKE2b-256 b3e5ad9011646dced4828503e5a8d6fbd0a90e2d99b3ca72459cd734dbc19d71

See more details on using hashes here.

Provenance

The following attestation bundles were made for mv_sdd-0.1.0b1-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl:

Publisher: wheels.yml on rmanhaeve/mv-sdd

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file mv_sdd-0.1.0b1-cp311-cp311-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for mv_sdd-0.1.0b1-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 75ac00e7873699931a240f9ca1d685b7928304e6a7eca2c26013e1ee9346d6e4
MD5 0e1f295b8c72ea30ff2ab620d9038947
BLAKE2b-256 3d1f8c853b48f7d8d2319fd6c9015eb27a79d562d989b6b81167be93fb4ef2e4

See more details on using hashes here.

Provenance

The following attestation bundles were made for mv_sdd-0.1.0b1-cp311-cp311-macosx_11_0_arm64.whl:

Publisher: wheels.yml on rmanhaeve/mv-sdd

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file mv_sdd-0.1.0b1-cp311-cp311-macosx_10_9_x86_64.whl.

File metadata

File hashes

Hashes for mv_sdd-0.1.0b1-cp311-cp311-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 832ce06a40efd345ff897b4629d70a00f5797eb4dc4da33ff8b6f027f2466d8b
MD5 e19b8fb0b456fc4a39b2a1de5b0febe7
BLAKE2b-256 133405f1b70c24dc82e3d7f020d0a3f45349daf01c02ebfbea97838f39c26ab9

See more details on using hashes here.

Provenance

The following attestation bundles were made for mv_sdd-0.1.0b1-cp311-cp311-macosx_10_9_x86_64.whl:

Publisher: wheels.yml on rmanhaeve/mv-sdd

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file mv_sdd-0.1.0b1-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for mv_sdd-0.1.0b1-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 b1d911bcec295467ddbf2645b3de57ede3a940fb2f97dcbf6e36ed693d9cca25
MD5 acdcacfad2c31f62e69dbf2ebabb6249
BLAKE2b-256 684abaa713a4ffc0c938c42707dc3c2a00fbf4a5c3b4e2fc95426ceb7a0b16ff

See more details on using hashes here.

Provenance

The following attestation bundles were made for mv_sdd-0.1.0b1-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl:

Publisher: wheels.yml on rmanhaeve/mv-sdd

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file mv_sdd-0.1.0b1-cp310-cp310-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for mv_sdd-0.1.0b1-cp310-cp310-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 e592ad2db56c45fd39c05582a26411f6912d7b545df27f8d76ab0e468889e9bf
MD5 bea1c08c22ab231de1cfc0d8dd9e65c6
BLAKE2b-256 6d2f87f4c596f1f909ad17e2c8f5fdbb7f7f148f3bc876b4d7fd6d8792053099

See more details on using hashes here.

Provenance

The following attestation bundles were made for mv_sdd-0.1.0b1-cp310-cp310-macosx_11_0_arm64.whl:

Publisher: wheels.yml on rmanhaeve/mv-sdd

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file mv_sdd-0.1.0b1-cp310-cp310-macosx_10_9_x86_64.whl.

File metadata

File hashes

Hashes for mv_sdd-0.1.0b1-cp310-cp310-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 8e0551d8f5658c221db1584659bbf9f514e2d7771505befc3d78535a3ee3b2c3
MD5 30d6fe2b086d5496fee0f5660f5ed3e3
BLAKE2b-256 8d1abed62943b97a2aee13924514a8088f058e25554ae7867ccbe573a5b19c46

See more details on using hashes here.

Provenance

The following attestation bundles were made for mv_sdd-0.1.0b1-cp310-cp310-macosx_10_9_x86_64.whl:

Publisher: wheels.yml on rmanhaeve/mv-sdd

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page