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 hashes)

Uploaded Source

Built Distributions

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

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 hashes)

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 hashes)

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 hashes)

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 hashes)

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 hashes)

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 hashes)

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 hashes)

Uploaded CPython 3.8 macOS 10.9+ x86-64

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