cabal-version: 2.4 name: hgeometry version: 0.14 x-revision: 1 synopsis: Geometric Algorithms, Data structures, and Data types. description: HGeometry provides some basic geometry types, and geometric algorithms and data structures for them. The main two focusses are: (1) Strong type safety, and (2) implementations of geometric algorithms and data structures with good asymptotic running time guarantees. Note that HGeometry is still highly experimental, don't be surprised to find bugs. homepage: https://fstaals.net/software/hgeometry license: BSD-3-Clause license-file: LICENSE author: Frank Staals maintainer: frank@fstaals.net -- copyright: tested-with: GHC >= 8.8 category: Geometry build-type: Simple extra-source-files: README.md changelog changelog.org Extra-doc-files: docs/**/*.png docs/**/*.jpg source-repository head type: git location: https://github.com/noinia/hgeometry library ghc-options: -O2 -Wall -fno-warn-unticked-promoted-constructors -fno-warn-type-defaults exposed-modules: -- * Primitives; Simulating General Position Algorithms.Geometry.SoS Algorithms.Geometry.SoS.Symbolic -- * Generic Geometry Data.Geometry Data.Geometry.Properties Data.Geometry.Transformation Data.Geometry.Boundary Data.Geometry.Duality Data.Geometry.Directions -- * Basic Geometry Types Data.Geometry.Vector Data.Geometry.Vector.VectorFixed Data.Geometry.Vector.VectorFamily Data.Geometry.Matrix -- Data.Geometry.Vector.Vinyl Data.Geometry.Interval Data.Geometry.Point Data.Geometry.Line Data.Geometry.LineSegment Data.Geometry.LineSegment.Internal Data.Geometry.SubLine Data.Geometry.HalfLine Data.Geometry.PolyLine Data.Geometry.HyperPlane Data.Geometry.HalfSpace Data.Geometry.Triangle -- Data.Geometry.Plane Data.Geometry.Slab Data.Geometry.Box Data.Geometry.Box.Internal Data.Geometry.Box.Sides Data.Geometry.Box.Corners Data.Geometry.Ball Data.Geometry.Ellipse Data.Geometry.Polygon Data.Geometry.Polygon.Bezier Data.Geometry.Polygon.Inflate Data.Geometry.Polygon.Convex Data.Geometry.Polygon.Monotone Data.Geometry.BezierSpline -- * Geometric Data Structures Data.Geometry.IntervalTree Data.Geometry.SegmentTree Data.Geometry.SegmentTree.Generic Data.Geometry.KDTree Data.Geometry.PlanarSubdivision Data.Geometry.PlanarSubdivision.Raw Data.Geometry.PlanarSubdivision.Dynamic Data.Geometry.PlanarSubdivision.TreeRep Data.Geometry.Arrangement Data.Geometry.RangeTree Data.Geometry.RangeTree.Measure Data.Geometry.RangeTree.Generic Data.Geometry.PrioritySearchTree Data.Geometry.QuadTree Data.Geometry.QuadTree.Cell Data.Geometry.QuadTree.Quadrants Data.Geometry.QuadTree.Split Data.Geometry.QuadTree.Tree Data.Geometry.PointLocation Data.Geometry.PointLocation.PersistentSweep Data.Geometry.VerticalRayShooting Data.Geometry.VerticalRayShooting.PersistentSweep -- * Algorithms -- * Geometric Algorithms Algorithms.Geometry.ConvexHull Algorithms.Geometry.ConvexHull.GrahamScan Algorithms.Geometry.ConvexHull.DivideAndConquer Algorithms.Geometry.ConvexHull.QuickHull Algorithms.Geometry.ConvexHull.JarvisMarch Algorithms.Geometry.ConvexHull.Naive Algorithms.Geometry.LowerEnvelope.DualCH Algorithms.Geometry.SmallestEnclosingBall Algorithms.Geometry.SmallestEnclosingBall.RIC Algorithms.Geometry.SmallestEnclosingBall.Naive Algorithms.Geometry.DelaunayTriangulation.Types Algorithms.Geometry.DelaunayTriangulation.DivideAndConquer Algorithms.Geometry.DelaunayTriangulation.Naive Algorithms.Geometry.PolyLineSimplification.ImaiIri Algorithms.Geometry.PolyLineSimplification.DouglasPeucker Algorithms.Geometry.EuclideanMST Algorithms.Geometry.EuclideanMST.EuclideanMST Algorithms.Geometry.WSPD Algorithms.Geometry.WellSeparatedPairDecomposition.WSPD Algorithms.Geometry.WellSeparatedPairDecomposition.Types Algorithms.Geometry.Diameter Algorithms.Geometry.Diameter.Naive Algorithms.Geometry.Diameter.ConvexHull -- Algorithms.Geometry.Sweep Algorithms.Geometry.PolygonTriangulation Algorithms.Geometry.PolygonTriangulation.Types Algorithms.Geometry.PolygonTriangulation.Triangulate Algorithms.Geometry.PolygonTriangulation.MakeMonotone Algorithms.Geometry.PolygonTriangulation.TriangulateMonotone Algorithms.Geometry.PolygonTriangulation.EarClip Algorithms.Geometry.LineSegmentIntersection Algorithms.Geometry.LineSegmentIntersection.Naive Algorithms.Geometry.LineSegmentIntersection.BentleyOttmann Algorithms.Geometry.LineSegmentIntersection.BooleanSweep -- Algorithms.Geometry.HiddenSurfaceRemoval.HiddenSurfaceRemoval Algorithms.Geometry.ClosestPair Algorithms.Geometry.ClosestPair.Naive Algorithms.Geometry.ClosestPair.DivideAndConquer Algorithms.Geometry.LinearProgramming.Types Algorithms.Geometry.LinearProgramming.LP2DRIC Algorithms.Geometry.RedBlueSeparator.RIC Algorithms.Geometry.FrechetDistance.Discrete Algorithms.Geometry.VisibilityPolygon.Lee Algorithms.Geometry.SSSP Algorithms.Geometry.SSSP.Naive Algorithms.Geometry.RayShooting.Naive -- * Embedded Planar Graphs Data.PlaneGraph Data.PlaneGraph.AdjRep Data.PlaneGraph.IO -- * Graphics stuff Graphics.Camera Graphics.Render other-modules: Data.Geometry.Matrix.Internal Data.Geometry.Transformation.Internal -- * Implementation Internals of Polygons Data.Geometry.Polygon.Core Data.Geometry.Polygon.Extremes Algorithms.Geometry.InPolygon Algorithms.Geometry.LineSegmentIntersection.Types Algorithms.Geometry.SmallestEnclosingBall.Types Algorithms.Geometry.WSPD.Types Data.Geometry.Vector.VectorFamilyPeano Data.Geometry.Point.Internal Data.Geometry.Point.Orientation Data.Geometry.Point.Quadrants Data.Geometry.Point.Orientation.Degenerate Data.Geometry.Point.Class Data.Geometry.Line.Internal Data.Geometry.Interval.Util Algorithms.Geometry.SoS.Expr Algorithms.Geometry.SoS.AsPoint Algorithms.Geometry.SoS.Internal Algorithms.Geometry.SoS.Orientation Algorithms.Geometry.SoS.Determinant Algorithms.Geometry.SoS.Sign Data.PlaneGraph.Core Data.Geometry.Arrangement.Internal Data.Geometry.PlanarSubdivision.Basic Data.Geometry.PlanarSubdivision.Merge -- other-extensions: build-depends: base >= 4.11 && < 5 , hgeometry-combinatorial >= 0.13 && < 1 , bifunctors >= 4.1 , bytestring >= 0.10 , containers >= 0.5.9 -- , multi-containers >= 0.2 , dlist >= 0.7 , lens >= 4.2 , semigroupoids >= 5 , semigroups >= 0.18 -- , singletons >= 2.0 , linear >= 1.10 , fixed-vector >= 1.0 , vector-builder >= 0.3.7 , vinyl >= 0.10 , deepseq >= 1.1 , fingertree >= 0.1 , MonadRandom >= 0.5 , random >= 1.1 , QuickCheck >= 2.5 , quickcheck-instances >= 0.3 , reflection >= 2.1 , primitive >= 0.6.3.0 , hashable >= 1.2 -- , singleton-typelits >= 0.1.0.0 -- , ghc-typelits-natnormalise >= 0.6 -- , ghc-typelits-knownnat >= 0.6 , vector >= 0.11 , data-clist >= 0.1.2.3 , vector-circular >= 0.1.4 , nonempty-vector >= 0.2.0.0 , text >= 1.1.1.0 , vector-algorithms , witherable >= 0.4 , aeson >= 1.0 , yaml >= 0.8 , mtl >= 2.2 , template-haskell , hspec, QuickCheck, quickcheck-instances hs-source-dirs: src default-language: Haskell2010 default-extensions: TypeFamilies , GADTs , KindSignatures , DataKinds , TypeOperators , ConstraintKinds , PolyKinds , RankNTypes , TypeApplications , ScopedTypeVariables , PatternSynonyms , TupleSections , LambdaCase , ViewPatterns , StandaloneDeriving , GeneralizedNewtypeDeriving , DeriveFunctor , DeriveFoldable , DeriveTraversable , DeriveGeneric , DerivingStrategies , DerivingVia , FlexibleInstances , FlexibleContexts , MultiParamTypeClasses test-suite doctests type: exitcode-stdio-1.0 ghc-options: -threaded main-is: doctests.hs build-depends: base , doctest >= 0.8 , doctest-discover , QuickCheck , quickcheck-instances default-language: Haskell2010 benchmark benchmarks hs-source-dirs: benchmark main-is: Benchmarks.hs type: exitcode-stdio-1.0 other-modules: Benchmark.Util Algorithms.Geometry.ConvexHull.Bench Algorithms.Geometry.ConvexHull.GrahamV2 Algorithms.Geometry.ConvexHull.GrahamFam -- Algorithms.Geometry.ConvexHull.GrahamFamPeano Algorithms.Geometry.ConvexHull.GrahamFixed Data.Geometry.Vector.VectorFamily6 Algorithms.Geometry.ConvexHull.GrahamFam6 Data.Geometry.IntervalTreeBench -- Demo.ExpectedPairwiseDistance -- Demo.TriangulateWorld -- WSPDBench Algorithms.Geometry.ClosestPair.Bench Algorithms.Geometry.LineSegmentIntersection.Bench Algorithms.Geometry.LineSegmentIntersection.BentleyOttmannOld Algorithms.Geometry.LineSegmentIntersection.BentleyOttmannNoExt Algorithms.Geometry.LineSegmentIntersection.TypesNoExt Algorithms.Geometry.PolygonTriangulation.Bench Algorithms.Geometry.PolygonTriangulation.MakeMonotoneOld build-depends: base , tasty-bench , fixed-vector , linear , semigroups , deepseq , deepseq-generics , hgeometry , hgeometry-combinatorial , lens , semigroupoids , QuickCheck , bytestring , containers , optparse-applicative , vinyl , vector , dlist , mtl , vector-circular , MonadRandom , hashable ghc-options: -Wall -O2 -rtsopts -fno-warn-unticked-promoted-constructors default-language: Haskell2010 default-extensions: TypeFamilies , GADTs , KindSignatures , DataKinds , TypeOperators , ConstraintKinds , PolyKinds , RankNTypes , TypeApplications , ScopedTypeVariables , PatternSynonyms , ViewPatterns , LambdaCase , TupleSections , StandaloneDeriving , GeneralizedNewtypeDeriving , DeriveFunctor , DeriveFoldable , DeriveTraversable , FlexibleInstances , FlexibleContexts , MultiParamTypeClasses , DerivingStrategies , DeriveGeneric