semvec/pypi-packages huggingface dataset:
parallel-delaunay 1.0.0
Parallel implementation of Guibas & Stolfi's divide-and-conquer algorithm for Delaunay triangulation, using MPI in Python.
License: MIT
Requires Python: >=3.8,<3.12

# delaunay-triangulation
This library is used for computing the [Delaunay triangulation](https://en.wikipedia.org/wiki/Delaunay_triangulation) of 2D point sets.

An example Delaunay triangulation output for 32 points is shown below.
<img src="./images/Figure 2021-02-24 110617.png" alt="drawing" width="500"/>


**Why is this library special?**

Speed! This is a pure python implementation of the Guibas &amp; Stolfi's divide and conquer algorithm. The divide and conquer algorithm has been shown to be the [fastest](https://people.eecs.berkeley.edu/~jrs/meshpapers/SuDrysdale.pdf) DT generation technique, with O(*n* log *n*) running time. Furthermore, this code has been parallelised using the MPI for Python ([mpi4py](https://github.com/mpi4py/mpi4py)) library to utilise multiple CPU cores. This allows the algorithm to be efficiently scaled for distributed computing across supercomputer nodes.

# Installation

Parallel Delaunay can be installed by running `pip install parallel-delaunay`. It requires Python 3.8+ to run.

To import and use the library see scipi_comparison.py for an example of generating a random set of 2D points and running the delaunay triangulation algorithm.

# Benchmarking

### Single core results

As seen in the graph below, this Delaunay triangulation implementation scales just as efficiently as the SciPy implementation. The SciPy library is written in C and wrapped in Python for ease of use. As a result, the SciPy DT algorithm is consistently around 40x faster for a given number of points. However, the benefit of my library is that it can take advantage of multiple CPU cores, offering a performance advantage unavailable to SciPy users. By utilising the multiple cores available in modern computers, the run time can be reduced linearly by a factor approximately equal to the number of available threads.

<img src="./images/Figure 2021-07-02 210145.png" alt="drawing" width="700"/>

This graph can be reproduced by running `python src/triangulation_benchmarks.py`.

## Structure
This repository is currently structured as follows.

    ├── src
        ├── triangulation_core
            ├── points_tools
                ├── generate_values.py
                └── split_list.py
            ├── edge_topology.py
            ├── linear_algebra.py
            ├── triangulation.py
            └── triangulation_primitives.py
        ├── utilities
            └── settings.py

## References
<a id="1">[1]</a>
Guibas, Leonidas and Stolfi, Jorge
'Primitives for the Manipulation of General Subdivisions and the Computation of Voronoi'
In: ACM Trans. Graph.4.2  (Apr.1985),  pp.  74–123.
issn:  0730-0301
doi:10.1145/282918.282923
pycode128 3.0.0
Python extension for Code128 barcode generator library.
License: MIT
Requires Python: >=3.8.0,<4.0

# Code128 library's python extension


[![pypi](https://img.shields.io/pypi/v/pycode128.svg)](https://pypi.org/project/pycode128/)
[![python](https://img.shields.io/pypi/pyversions/pycode128.svg)](https://pypi.org/project/pycode128/)
[![Build Status](https://github.com/gpongelli/pycode128/actions/workflows/complete.yml/badge.svg)](https://github.com/gpongelli/pycode128/actions/workflows/complete.yml)
[![codecov](https://codecov.io/gh/gpongelli/pycode128/branch/main/graphs/badge.svg)](https://codecov.io/github/gpongelli/pycode128)



Python extension for Code128 barcode generator library


* Documentation: <https://gpongelli.github.io/pycode128>
* GitHub: <https://github.com/gpongelli/pycode128>
* PyPI: <https://pypi.org/project/pycode128/>
* Free software: MIT


## Features

* [Code128 library](https://github.com/fhunleth/code128) python wrapper, included as submodule
  and build when creating python extension
* Poetry managed project
* C code checked via [check tool](https://libcheck.github.io/check/), compiled and run through pytst on all python version under Ubuntu OS
* Multiple OS (Linux, Windows, MacOS) and Python compilation via [cibuildwhel](https://github.com/pypa/cibuildwheel)
* [cibuildwheel manylinux_2_28 custom images](https://hub.docker.com/r/gpongelli/manylinux_python) with pre-built python from source,
  to being able to compile check against correct python version
* ~~[ARM-runner action](https://github.com/pguyot/arm-runner-action) custom [images](https://github.com/gpongelli/arm-runner-python/releases)
  with pre-built python from source, to build RPI wheels~~

## Credits

This package was created with [Cookiecutter](https://github.com/audreyr/cookiecutter) and the [gpongelli/cookiecutter-pypackage](https://github.com/gpongelli/cookiecutter-pypackage) project template.