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

Uploaded Source

Built Distributions

pyzdd-0.3.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (239.0 kB view details)

Uploaded CPython 3.11 manylinux: glibc 2.17+ x86-64

pyzdd-0.3.0-cp311-cp311-macosx_10_9_x86_64.whl (477.0 kB view details)

Uploaded CPython 3.11 macOS 10.9+ x86-64

pyzdd-0.3.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (239.0 kB view details)

Uploaded CPython 3.10 manylinux: glibc 2.17+ x86-64

pyzdd-0.3.0-cp310-cp310-macosx_10_9_x86_64.whl (477.0 kB view details)

Uploaded CPython 3.10 macOS 10.9+ x86-64

pyzdd-0.3.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (239.3 kB view details)

Uploaded CPython 3.9 manylinux: glibc 2.17+ x86-64

pyzdd-0.3.0-cp39-cp39-macosx_10_9_x86_64.whl (477.1 kB view details)

Uploaded CPython 3.9 macOS 10.9+ x86-64

pyzdd-0.3.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (238.8 kB view details)

Uploaded CPython 3.8 manylinux: glibc 2.17+ x86-64

pyzdd-0.3.0-cp38-cp38-macosx_10_9_x86_64.whl (477.1 kB view details)

Uploaded CPython 3.8 macOS 10.9+ x86-64

File details

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

File metadata

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

File hashes

Hashes for pyzdd-0.3.0.tar.gz
Algorithm Hash digest
SHA256 67fff997a9f324dd406e513078b556059a2c82f20fc4e4073c0c76c22514bb1e
MD5 422bfd68c2a5c0bea749d0fd0209ff64
BLAKE2b-256 703329a1639faddcec58705e6024c162ae09a67601ea93f0f1fbbb2dcf45ce4a

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyzdd-0.3.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 ec3a6b07b4dedb2200eff58e2805b0cff4046bfca8f8a3169bc1f25168ab7fd0
MD5 089b74ade1628a372cf100366f27d8dd
BLAKE2b-256 1717082911408d37f06787d500ed5a6344e9c492389df2f15058cea7cc7f6e4b

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyzdd-0.3.0-cp311-cp311-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 0cdd469faa5092eedf5a0fb28490d94e29a4cbefb7eafc578a8a806ce8dfdd7a
MD5 91c0310b528afb0d475c5bb9b649c788
BLAKE2b-256 9bfb54a5cb0c5dc4ca27fdc12361841010d5294e63df28ada86fc415de8729f5

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyzdd-0.3.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 40b48822fed60cdea054a8f5ddb6e2bc6530cf7c8265c9c233c8abd4b97a87af
MD5 2533191fefc1a48573db1f962d60db0c
BLAKE2b-256 176ab1e163d414a9982f88cd3b934df9644c2eaad6c88abee12979500360d59e

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyzdd-0.3.0-cp310-cp310-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 659ecdbd2c1a8099f23e92a09e7aff908179d1ba2c4d170c88fea3d0a56d436f
MD5 26121fbbca5bc0d1f18f20861f8f363b
BLAKE2b-256 d7eaae65aa398bb7d46bc3eb3c5c9650864a48c55d45e37490d9232cd985c5cb

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyzdd-0.3.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 d08262d0294e5c978997f3d05eb927a7311e37b8e42bc28ad36f02f7e3778822
MD5 1ae0ed67c190a3494b42749a097128e3
BLAKE2b-256 4af7c52996aa4b20d3560242327cb641c951cfc81f6c46b9b913bbdef80c20e7

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyzdd-0.3.0-cp39-cp39-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 5989c236b00e135e056239370711747ef4e0829fa2e026ec3c07ea9e415e0ef5
MD5 617526f52e0815b402b9ad5886a7e2f9
BLAKE2b-256 94ffdac312bd46f42f401f508a4b5af46a1b77535fe580468f55c6f6c0d29639

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyzdd-0.3.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 adc6c3698f23a81137224d0575bb3c6a33cce670c5bec0296f6c42444a114ebb
MD5 3c7ab7e00226a3de15c82b8bca0020f4
BLAKE2b-256 b3e9a55f27ceeacf5ae45e9ec7f0e0e1b7b8e3456ff44e9b945e1698a86a1d15

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyzdd-0.3.0-cp38-cp38-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 551c50413cbdf10c8f83a5553fcaf92033bfd92f39828711bf719c10b6803605
MD5 9826f00f6874dab85d734f313280e2ac
BLAKE2b-256 ff1bd1f506c87bee9d2307a332f2d0ccf63affee3874f939cbe40920f44165b3

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