Skip to main content

Python wrapper to TdZdd

Project description

pyzdd

testing pre-commit.ci status MIT License PyPI - Python Version PyPI version PyPI - Downloads

Python wrapper to TdZdd

Installation

pyzdd works with Python3.8+ and can be installed via PyPI:

pip install pyzdd

or in local:

git clone git@github.com:lan496/pyzdd.git
cd pyzdd
pip install -e .

How to cite pyzdd

If you use this package in your research, please cite TdZDD as follows.

@techreport{Iwashita13,
  author = {Hiroaki Iwashita and Shinichi Minato},
  memo = {Efficient Top-Down {ZDD} Construction Techniques Using Recursive Specifications},
  year = {2013},
  number = {TCS-TRA-1369,
  INSTITUTION = {Graduate School of Information Science and Technology, Hokkaido University}
}

The citation for the isomorphism-elimination DD is as follows.

@inproceedings{Horiyama2018,
  memo ={Isomorphism Elimination by Zero-Suppressed Binary Decision Diagrams},
  author={Takashi Horiyama and Masahiro Miyasaka and Riku Sasaki},
  booktitle={the Canadian Conference on Computational Geometry},
  pages={360--366},
  address={Winnipeg, Manitoba, Canada}
  year={2018},
  url={http://www.cs.umanitoba.ca/~cccg2018/papers/session7B-p2.pdf}
}

Development

Installation

./clean.sh && pip install -e ".[dev]"
pre-commit install

Testing

cd xtal_tdzdd/test
cmake -S . -B build
cmake --build build -j 32
cd build && ctest -vv

Building Python wheels in local

# Linux build
cibuildwheel --platform linux

# MacOS build
cibuildwheel --platform macos

Write Custom Specification

  1. Write a TdZdd-specification in src/spec/*.hpp
  2. Let the new specification class be A, wrap the following classes and methods in src/wrapper.cpp
    • tdzdd::DdSpecBase<A, 2>
    • tdzdd::DdSpec<A, T, 2>
    • A
    • tdzdd::DdStructure<2>::zddSubset<A>
  3. import _pyzdd.A in pyzdd/__init__.py

References

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

pyzdd-0.2.6.tar.gz (49.4 kB view details)

Uploaded Source

Built Distributions

pyzdd-0.2.6-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (349.9 kB view details)

Uploaded CPython 3.11 manylinux: glibc 2.17+ x86-64

pyzdd-0.2.6-cp311-cp311-macosx_10_9_x86_64.whl (506.7 kB view details)

Uploaded CPython 3.11 macOS 10.9+ x86-64

pyzdd-0.2.6-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (350.0 kB view details)

Uploaded CPython 3.10 manylinux: glibc 2.17+ x86-64

pyzdd-0.2.6-cp310-cp310-macosx_10_9_x86_64.whl (506.7 kB view details)

Uploaded CPython 3.10 macOS 10.9+ x86-64

pyzdd-0.2.6-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (350.2 kB view details)

Uploaded CPython 3.9 manylinux: glibc 2.17+ x86-64

pyzdd-0.2.6-cp39-cp39-macosx_10_9_x86_64.whl (506.8 kB view details)

Uploaded CPython 3.9 macOS 10.9+ x86-64

pyzdd-0.2.6-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (349.9 kB view details)

Uploaded CPython 3.8 manylinux: glibc 2.17+ x86-64

pyzdd-0.2.6-cp38-cp38-macosx_10_9_x86_64.whl (506.7 kB view details)

Uploaded CPython 3.8 macOS 10.9+ x86-64

File details

Details for the file pyzdd-0.2.6.tar.gz.

File metadata

  • Download URL: pyzdd-0.2.6.tar.gz
  • Upload date:
  • Size: 49.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.1 CPython/3.11.1

File hashes

Hashes for pyzdd-0.2.6.tar.gz
Algorithm Hash digest
SHA256 2b6a606d66f2405b89e30e5b1de269e20914bb7d73ef7f9a363bcdcf9cb8e86f
MD5 c25169f24a846ed08752e4a12ce24c60
BLAKE2b-256 3214eaa8e6a25daa47ec77e18b26d99e44568e599b8b9e53acbabd48e0e31fbc

See more details on using hashes here.

File details

Details for the file pyzdd-0.2.6-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for pyzdd-0.2.6-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 7ca063d8f2e280d9198a7b0ea84ba2dca80af47830d0f47a5a19b32a0fbf4673
MD5 ab0acb1eb2a9e39087b9287dcbbbc969
BLAKE2b-256 3f070c7464fb6e51a67414ed84219fa89a1fabba06e2bbd7eaffa2eccc7704b6

See more details on using hashes here.

File details

Details for the file pyzdd-0.2.6-cp311-cp311-macosx_10_9_x86_64.whl.

File metadata

File hashes

Hashes for pyzdd-0.2.6-cp311-cp311-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 4cd8f171d0b10c686351164d482b436e20bf500344767debcbd5ba0e1aa16181
MD5 cf83abd2a684ab130ce15f2f86cf9d76
BLAKE2b-256 300ac0ae2525fd836adc81926a47525a8247b088efe5c3df69f6d65c68024648

See more details on using hashes here.

File details

Details for the file pyzdd-0.2.6-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for pyzdd-0.2.6-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 f7ae87770be0713ffa7d1301fd0882bd18ae1283d9faf09af1a571de85911c18
MD5 f423b238b5fa0b265509d253612015ce
BLAKE2b-256 7e584da76735945ad873505e36a1bd4376b12d5cd933ed2ea40ef101b9232d32

See more details on using hashes here.

File details

Details for the file pyzdd-0.2.6-cp310-cp310-macosx_10_9_x86_64.whl.

File metadata

File hashes

Hashes for pyzdd-0.2.6-cp310-cp310-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 32eb9fccbe5117bc191d12fb955b5318f093a2a5f3f0a52f4425977a9909c424
MD5 75a1abf6d29599ef48bff58d0c4fc114
BLAKE2b-256 690ef89716f26628a801340ce67bf19383695e85c03bee231ebb22cbc34b0e68

See more details on using hashes here.

File details

Details for the file pyzdd-0.2.6-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for pyzdd-0.2.6-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 c4348f9614976bf39d54400fd18b722cea32da95fd7630fcdff873606798e521
MD5 9d64dc9d4e47691434e48c01f3f44b0b
BLAKE2b-256 9dd11164ea2d9b44cf3e22db493059d595578eda2bfb8c6be09e86b3a206d0ca

See more details on using hashes here.

File details

Details for the file pyzdd-0.2.6-cp39-cp39-macosx_10_9_x86_64.whl.

File metadata

File hashes

Hashes for pyzdd-0.2.6-cp39-cp39-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 1d46e052be530bc3483b5f488b19cf5a359f20f4e6c6bbfb411e7b05405c8189
MD5 80c9140b5c1c4200c1e417430adebd1b
BLAKE2b-256 ee200138c7e5140be35e061baaf074fa9a1be09feb6831a4dd79248cb1bb24d1

See more details on using hashes here.

File details

Details for the file pyzdd-0.2.6-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for pyzdd-0.2.6-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 c33c0e67ffea8dbea101ff4dc3a301d7253b30ec5b734d7231782eeae0903ebc
MD5 5a7a52f797f8ca4115652f5ba0c1792d
BLAKE2b-256 4acb8337432fd1859570cf870d7594a7c134b27046f53b7e2819a51e168c1e43

See more details on using hashes here.

File details

Details for the file pyzdd-0.2.6-cp38-cp38-macosx_10_9_x86_64.whl.

File metadata

File hashes

Hashes for pyzdd-0.2.6-cp38-cp38-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 69eaa914f099d08267bb9fab20e85c5900e658833c3be414f504935fe4a6a7df
MD5 56d67c4f8d514cacb53cde55e30ef419
BLAKE2b-256 3896c1d9a33f4d610f043a130259681449cc9440bbb29b863a5ff52b34a1bf0d

See more details on using hashes here.

Supported by

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