pure-cdt: Constrained Delaunay triangulation and mesh refinement in 2D, in pure Haskell
Delaunay triangulation of a set of points in the plane, computed by divide
and conquer and parallelised with Control.Parallel.Strategies; constrained
triangulation of a polygon with holes, where the boundary edges are forced
into the triangulation and the triangles outside the region are dropped;
Delaunay refinement (Ruppert's algorithm) to a minimum angle and a maximum
triangle area; and an indexed mesh (node coordinates, index triples,
boundary edges) for finite element code.
Everything is written in Haskell, with a pure API and no bindings to a C or C++ library, so the package builds wherever GHC does.
The geometric predicates (orientation, in-circle, segment crossing) are
exact: a floating-point filter decides the easy cases and Rational
arithmetic the rest, so collinear and cocircular inputs are handled
correctly.
Start with the Triangulation module. Please see the README on GitHub at https://github.com/alexelyukov/triangulation#readme.
[Skip to Readme]
Modules
- Triangulation
- Triangulation.Check
- Triangulation.Constrained
- Triangulation.Flip
- Triangulation.Generator
- Triangulation.Geometry
- Triangulation.Geometry.Edge
- Triangulation.Geometry.Exact
- Triangulation.Geometry.Point
- Triangulation.Geometry.Polygon
- Triangulation.Geometry.Ring
- Triangulation.Geometry.Triangle
- Triangulation.Leaf
- Triangulation.Merge
- Triangulation.Mesh
- Triangulation.Parallel
- Triangulation.Refine
- Triangulation.Repair
- Triangulation.Store
- Triangulation.Types
Flags
Manual Flags
| Name | Description | Default |
|---|---|---|
| examples | Build the executable that renders the example pictures | Disabled |
Use -f <flag> to enable a flag, or -f -<flag> to disable that flag. More info
Downloads
- pure-cdt-0.2.0.0.tar.gz [browse] (Cabal source package)
- Package description (as included in the package)
Maintainer's Corner
For package maintainers and hackage trustees
Candidates
- No Candidates
| Versions [RSS] | 0.2.0.0 |
|---|---|
| Change log | CHANGELOG.md |
| Dependencies | base (>=4.18 && <5), deepseq (>=1.4 && <1.6), hashable (>=1.4 && <1.6), JuicyPixels (>=3.3 && <3.4), parallel (>=3.2 && <3.4), pure-cdt, random (>=1.2 && <1.4), Rasterific (>=0.7 && <0.8), unordered-containers (>=0.2.19 && <0.3), vector (>=0.13 && <0.14) [details] |
| Tested with | ghc ==9.6.7 || ==9.10.3 || ==9.14.1 |
| License | BSD-3-Clause |
| Copyright | 2025-2026 Alex Elyukov |
| Author | Alex Elyukov |
| Maintainer | alexelyukov@gmail.com |
| Uploaded | by Elyukov at 2026-09-04T14:23:34Z |
| Category | Geometry |
| Home page | https://github.com/alexelyukov/triangulation#readme |
| Bug tracker | https://github.com/alexelyukov/triangulation/issues |
| Source repo | head: git clone https://github.com/alexelyukov/triangulation |
| Distributions | |
| Executables | pure-cdt-examples |
| Downloads | 0 total (0 in the last 30 days) |
| Rating | (no votes yet) [estimated by Bayesian average] |
| Your Rating | |
| Status | Docs pending Build status unknown [no reports yet] |
