Last updated:
0 purchases
pyzdd 0.3.0
pyzdd
Python wrapper to TdZdd
Github: https://github.com/lan496/pyzdd
PyPI: https://pypi.org/project/pyzdd/
Installation
pyzdd works with Python3.8+ and can be installed via PyPI:
pip install pyzdd
or in local:
git clone [email protected]: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
Write a TdZdd-specification in src/spec/*.hpp
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>
import _pyzdd.A in pyzdd/__init__.py
References
https://github.com/kunisura/TdZdd
https://github.com/junkawahara/frontier_basic_tdzdd
For personal and professional use. You cannot resell or redistribute these repositories in their original state.
There are no reviews.