packages feed

pure-cdt-0.2.0.0: pure-cdt.cabal

cabal-version: 2.2

-- This file has been generated from package.yaml by hpack version 0.39.6.
--
-- see: https://github.com/sol/hpack

name:           pure-cdt
version:        0.2.0.0
synopsis:       Constrained Delaunay triangulation and mesh refinement in 2D, in pure Haskell
description:    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>.
category:       Geometry
homepage:       https://github.com/alexelyukov/triangulation#readme
bug-reports:    https://github.com/alexelyukov/triangulation/issues
author:         Alex Elyukov
maintainer:     alexelyukov@gmail.com
copyright:      2025-2026 Alex Elyukov
license:        BSD-3-Clause
license-file:   LICENSE
build-type:     Simple
tested-with:
    GHC == 9.6.7 || == 9.10.3 || == 9.14.1
extra-doc-files:
    README.md
    CHANGELOG.md

source-repository head
  type: git
  location: https://github.com/alexelyukov/triangulation

flag examples
  description: Build the executable that renders the example pictures
  manual: True
  default: False

library
  exposed-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
  other-modules:
      Paths_pure_cdt
  autogen-modules:
      Paths_pure_cdt
  hs-source-dirs:
      src
  ghc-options: -Wall -Wcompat -Widentities -Wincomplete-record-updates -Wincomplete-uni-patterns -Wmissing-export-lists -Wmissing-home-modules -Wpartial-fields -Wredundant-constraints -Wunused-packages
  build-depends:
      base >=4.18 && <5
    , deepseq >=1.4 && <1.6
    , hashable >=1.4 && <1.6
    , parallel >=3.2 && <3.4
    , random >=1.2 && <1.4
    , unordered-containers >=0.2.19 && <0.3
    , vector ==0.13.*
  default-language: GHC2021

executable pure-cdt-examples
  main-is: Main.hs
  other-modules:
      Drawer
      Examples.Circle
      Examples.Common
      Examples.Gear
      Examples.Simple
      Examples.Solenoid
      Paths_pure_cdt
  autogen-modules:
      Paths_pure_cdt
  hs-source-dirs:
      app
  ghc-options: -Wall -Wcompat -Widentities -Wincomplete-record-updates -Wincomplete-uni-patterns -Wmissing-export-lists -Wmissing-home-modules -Wpartial-fields -Wredundant-constraints -Wunused-packages -threaded -rtsopts -with-rtsopts=-maxN8
  build-depends:
      JuicyPixels ==3.3.*
    , Rasterific ==0.7.*
    , base >=4.18 && <5
    , pure-cdt
  default-language: GHC2021
  if !flag(examples)
    buildable: False

test-suite pure-cdt-test
  type: exitcode-stdio-1.0
  main-is: Main.hs
  other-modules:
      Test.Geometry
      Test.Mesh
      Test.Refine
      Test.Ring
      Test.Triangulation
      Paths_pure_cdt
  autogen-modules:
      Paths_pure_cdt
  hs-source-dirs:
      test
  ghc-options: -Wall -Wcompat -Widentities -Wincomplete-record-updates -Wincomplete-uni-patterns -Wmissing-export-lists -Wmissing-home-modules -Wpartial-fields -Wredundant-constraints -Wunused-packages -threaded -rtsopts -with-rtsopts=-maxN8
  build-depends:
      base >=4.18 && <5
    , hashable >=1.4 && <1.6
    , pure-cdt
    , tasty >=1.4 && <1.6
    , tasty-hunit ==0.10.*
    , tasty-quickcheck >=0.10 && <0.12
    , vector ==0.13.*
  default-language: GHC2021

benchmark pure-cdt-bench
  type: exitcode-stdio-1.0
  main-is: Main.hs
  hs-source-dirs:
      bench
  ghc-options: -Wall -Wcompat -Widentities -Wincomplete-record-updates -Wincomplete-uni-patterns -Wmissing-export-lists -Wmissing-home-modules -Wpartial-fields -Wredundant-constraints -Wunused-packages -threaded -rtsopts -with-rtsopts=-maxN8
  build-depends:
      base >=4.18 && <5
    , pure-cdt
    , tasty-bench >=0.3 && <0.5
  default-language: GHC2021

benchmark pure-cdt-scaling
  type: exitcode-stdio-1.0
  main-is: Scale.hs
  hs-source-dirs:
      bench
  ghc-options: -Wall -Wcompat -Widentities -Wincomplete-record-updates -Wincomplete-uni-patterns -Wmissing-export-lists -Wmissing-home-modules -Wpartial-fields -Wredundant-constraints -Wunused-packages -threaded -rtsopts
  build-depends:
      base >=4.18 && <5
    , deepseq >=1.4 && <1.6
    , pure-cdt
  default-language: GHC2021