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.8.tar.gz (49.6 kB view details)

Uploaded Source

Built Distributions

pyzdd-0.2.8-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.8-cp311-cp311-macosx_10_9_x86_64.whl (515.4 kB view details)

Uploaded CPython 3.11 macOS 10.9+ x86-64

pyzdd-0.2.8-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.8-cp310-cp310-macosx_10_9_x86_64.whl (515.4 kB view details)

Uploaded CPython 3.10 macOS 10.9+ x86-64

pyzdd-0.2.8-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.8-cp39-cp39-macosx_10_9_x86_64.whl (515.5 kB view details)

Uploaded CPython 3.9 macOS 10.9+ x86-64

pyzdd-0.2.8-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.8-cp38-cp38-macosx_10_9_x86_64.whl (515.4 kB view details)

Uploaded CPython 3.8 macOS 10.9+ x86-64

File details

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

File metadata

  • Download URL: pyzdd-0.2.8.tar.gz
  • Upload date:
  • Size: 49.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.0.0 CPython/3.12.3

File hashes

Hashes for pyzdd-0.2.8.tar.gz
Algorithm Hash digest
SHA256 0988284d973f02b1d293257fc9721c46a91d65e8b452ae595b058be091e6b07e
MD5 865c50203a1753c8dbfb32ed53080eb8
BLAKE2b-256 5f612ef003e20169a0b32829f6b98496c99e40c3b17d12e73c20fe61dfe69a52

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyzdd-0.2.8-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 6e34120f1ea6dc8293dbdc6fd70288715468dfdd8bd6ba2595e858f978d3b10d
MD5 933a0edfbee8424b598f601f34c2526e
BLAKE2b-256 764e6658b66745e2faa0b20233ef549625d8b53194d78d0655f4452940281240

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyzdd-0.2.8-cp311-cp311-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 732c2e8db30481ca90121569001a4139354451423ee529ad884c26a87c3b713f
MD5 21bde1f2ae42c09d5fecc1f08e4a0b99
BLAKE2b-256 386251fa43a26f478cc8966b349fedf8e03d08e381b5b4fb2ba91606947ff191

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyzdd-0.2.8-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 50be6960e6a7d2a9df603b031fac151e464911b6cc7493eee1b5d7a9694aa92b
MD5 35ee1ff4c575467bd395671c3af94352
BLAKE2b-256 dd2b6a5c8e42bedb733628ff45d3cbdcdf0feebd3b5d272c019f63ee1afe968a

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyzdd-0.2.8-cp310-cp310-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 95ed6c71eacf086f1ae1d6d50f2da070bda6f3a8f33a2799bf594dd140ff5805
MD5 d0ae48df53fe8f0b142f253d2738ae41
BLAKE2b-256 004055fa64968fc1ea95c33c64630b7fe893116a8c62ac401c0bf81d3d0d83be

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyzdd-0.2.8-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 c243d20d859b00f015001203cb7253ebb2fc8c483ddccaa6e1aed8db4d71d625
MD5 a3a8fddb5b4245f1e71af993374c9fb9
BLAKE2b-256 c156de8ef645f81eee4b0ddcc695e2fba7fe55b948196eb09bc0e93eb754811f

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyzdd-0.2.8-cp39-cp39-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 6dc84aaf77f8af221006c68b475c75939c555dbe900e034ab8f85252d59bf63b
MD5 08ff60974a6f84ffca9d5b3c3f24d79d
BLAKE2b-256 9d0cad29b77c36fe9bdb26ae2452461ef2ff77886cfc5b761008090b1428a4c4

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyzdd-0.2.8-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 3ae556226e320f881020d70488348bda744f88fd8fe7a933c0f93df75d6333af
MD5 0751ba93e9f8c54e63c8aebdb8db7359
BLAKE2b-256 85cd1ee62094479f0b302d0bb6e1da1833afe81691cf687b043d3b27b9f8f98b

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyzdd-0.2.8-cp38-cp38-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 f1eed9771f9650d6f97696eaae3905538aea23262841d883dfbd8ae7b646e627
MD5 a741a04ff724b12e34a212b9ac936781
BLAKE2b-256 2fcb2d34c14f10c36d082d2a988d94456b7333f5bcffa43b70d110825b18ae23

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