packages feed

hgeometry-combinatorial-0.13: hgeometry-combinatorial.cabal

-- Initial hgeometry.cabal generated by cabal init.  For further
-- documentation, see http://haskell.org/cabal/users-guide/

name:                hgeometry-combinatorial
version:             0.13
synopsis:            Data structures, and Data types.
description:
    The Non-geometric data types and algorithms used in HGeometry.
homepage:            https://fstaals.net/software/hgeometry
license:             BSD3
license-file:        LICENSE
author:              Frank Staals
maintainer:          frank@fstaals.net
-- copyright:

tested-with:         GHC >= 8.8

category:            Geometry
build-type:          Simple

data-files:          test/Data/PlanarGraph/myGraph.yaml
                     -- in the future (cabal >=2.4) we can use
                     -- examples/**/*.in
                     -- examples/**/*.out

extra-source-files:  README.md
                     changelog
                     changelog.org

Extra-doc-files:     docs/Data/PlanarGraph/testG.png
                     docs/Data/PlaneGraph/planegraph.png
                     docs/Data/PlanarGraph/*.svg
                     docs/Data/PlanarGraph/*.compact.svg
                     -- docs/**/*.png

cabal-version:       2.0
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:
                    -- * Algorithmic Strategies
                    Algorithms.DivideAndConquer
                    Algorithms.BinarySearch
                    Algorithms.LogarithmicMethod

                    -- * Graph Algorithms
                    Algorithms.Graph.DFS
                    Algorithms.Graph.BFS
                    Algorithms.Graph.MST
                    Algorithms.FloydWarshall


                    Algorithms.StringSearch.KMP




                    -- * Numeric Data Types
                    Data.RealNumber.Rational
                    Data.Double.Approximate
                    Data.Double.Shaman

                    -- * Measurements
                    Data.Measured
                    Data.Measured.Class
                    Data.Measured.Size

                    -- * General Data Types
                    Data.UnBounded
                    Data.Intersection
                    Data.Range

                    Data.Ext
                    -- Data.Ext.Multi

                    Data.LSeq
                    Data.CircularSeq
                    Data.Sequence.Util
                    Data.BinaryTree

                    Data.CircularList.Util
                    Data.Vector.Circular.Util
                    Data.OrdSeq
                    Data.Tree.Util
                    Data.Util

                    Data.IndexedDoublyLinkedList
                    -- Data.IndexedDoublyLinkedList.Unboxed
                    Data.IndexedDoublyLinkedList.Bare

                    Data.DynamicOrd

                    Data.Set.Util

                    Data.List.Set
                    Data.List.Util
                    Data.List.Zipper
                    Data.List.Alternating

                    -- * Planar Graphs
                    Data.Permutation
                    Data.PlanarGraph
                    Data.PlanarGraph.Persistent
                    Data.PlanarGraph.Mutable
                    Data.PlanarGraph.Immutable
                    Data.PlanarGraph.AdjRep
                    Data.PlanarGraph.IO
                    Data.PlanarGraph.Dart
                    Data.PlanarGraph.Core
                    Data.PlanarGraph.Dual
                    Data.PlanarGraph.EdgeOracle

                    -- * Other
                    System.Random.Shuffle

                    Control.Monad.State.Persistent

                    Control.CanAquire

                    Data.Yaml.Util

  other-modules:    Data.PlanarGraph.Internal

  -- other-extensions:
  build-depends:
                base                    >= 4.11      &&     < 5
              , array                   >= 0.4
              , bifunctors              >= 4.1
              , bytestring              >= 0.10
              , containers              >= 0.5.9
              -- , data-default
              , dlist                   >= 0.7
              , lens                    >= 4.18
              , contravariant           >= 1.5
              , semigroupoids           >= 5
              , semigroups              >= 0.18
              , 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
              , linear                  >= 1.21
              , hashable                >= 1.2
              , witherable              >= 0.4

              , vector                  >= 0.11
              , data-clist              >= 0.1.2.3
              , vector-circular         >= 0.1.2
              , nonempty-vector         >= 0.2.0.0
              , vector-builder          >= 0.3.7
              , unordered-containers

              , aeson                   >= 1.0
              , yaml                    >= 0.8
              , text                    >= 1.1.1.0
              , math-functions

              , mtl
              , template-haskell




  hs-source-dirs: src
                  -- examples/demo

  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

                    , FlexibleInstances
                    , FlexibleContexts
                    , MultiParamTypeClasses

  c-sources: cbits/erf.c
  extra-libraries: m

test-suite doctests
  type:          exitcode-stdio-1.0
  ghc-options:   -threaded
  main-is:       doctests.hs
  build-depends: base
               , doctest             >= 0.8
--               , doctest-discover

  default-language:    Haskell2010

test-suite hspec
  type:                 exitcode-stdio-1.0
  default-language:     Haskell2010
  hs-source-dirs:       test
  main-is:              Spec.hs
  ghc-options:   -fno-warn-unticked-promoted-constructors
                 -fno-warn-partial-type-signatures
                 -fno-warn-missing-signatures

  build-tool-depends: hspec-discover:hspec-discover

  other-modules: Algorithms.StringSearch.KMPSpec
                 Algorithms.DivideAndConquerSpec
                 Algorithms.LogarithmicMethodSpec
                 Algorithms.Graph.DFSSpec
                 Algorithms.Graph.BFSSpec
                 Data.RangeSpec
                 Data.EdgeOracleSpec
                 Data.PlanarGraphSpec
                 Data.OrdSeqSpec
                 Data.CircularSeqSpec
                 Data.IndexedDoublyLinkedListSpec
                 Data.RealNumber.RationalSpec


  build-depends:        base
                      , hspec                   >= 2.1
                      , QuickCheck              >= 2.5
                      , quickcheck-instances    >= 0.3
                      , approximate-equality    >= 1.1.0.2
                      , hgeometry-combinatorial
                      , deepseq
                      , lens
                      , data-clist
                      , linear
                      , bytestring
                      , vinyl
                      , semigroups
                      , vector
                      , containers
                      , random
                      , filepath
                      , directory
                      , yaml
                      , MonadRandom
                      , semigroupoids
  -- -- Such a mess:
  -- if impl(ghc == 9.*)
  --   build-depends:      singletons              == 3.*
  --                     , singletons-th           == 3.*
  -- else
  --   build-depends:      singletons              == 2.*

  default-extensions: TypeFamilies
                    , GADTs
                    , KindSignatures
                    , DataKinds
                    , TypeOperators
                    , ConstraintKinds
                    , PolyKinds
                    , RankNTypes
                    , TypeApplications
                    , ScopedTypeVariables


                    , PatternSynonyms
                    , ViewPatterns
                    , LambdaCase
                    , TupleSections


                    , StandaloneDeriving
                    , GeneralizedNewtypeDeriving
                    , DeriveFunctor
                    , DeriveFoldable
                    , DeriveTraversable

                    , FlexibleInstances
                    , FlexibleContexts
                    , MultiParamTypeClasses
                    , OverloadedStrings