cabal-version:      2.4
name:               random-cycle
version:            0.1.2.0
synopsis: Uniform draws of partitions and cycle-partitions, with thinning.

description: 
    A Haskell library for efficient uniform random sampling of cycle partition
    graphs on sets of vertices, and partitions of lists or vectors. Selection
    can be subject to conditions.

-- The ones tested in the CI, on linux x86_64.
-- Base package range indicates other compilers tested locally.
tested-with:
    ghc == 9.2.5

homepage: https://sr.ht/~brendanrbrown/random-cycle
bug-reports: https://todo.sr.ht/~brendanrbrown/random-cycle
license: GPL-3.0-or-later
author:             Brendan Brown
maintainer:         brendanrbrown@runbox.com

-- A copyright notice.
copyright: Brendan R. Brown, 2023
category: Math, Graphs
extra-source-files: CHANGELOG.md, README.md, LICENSE

library
    exposed-modules:  
      RandomCycle.List
      RandomCycle.Vector
    other-modules: 
      RandomCycle.List.Partition
      RandomCycle.Vector.Partition
      RandomCycle.Vector.Cycle
    build-depends:    
      base >=4.14.3.0 && < 4.18.0.0
      , primitive
      , mwc-random
      , random
      , vector
    hs-source-dirs:   src
    default-language: Haskell2010
    ghc-options:
      -Wall
      -Wcompat
      -Widentities
      -Wincomplete-record-updates
      -Wincomplete-uni-patterns
      -Wpartial-fields
      -Wredundant-constraints

benchmark benches
    type: exitcode-stdio-1.0
    main-is: Main.hs  
    -- Modules included in this library but not exported.
    other-modules: RunTimes

    -- LANGUAGE extensions used by modules in this package.
    -- other-extensions:
    build-depends:    
      base ^>=4.16.3.0
      , random-cycle
      , criterion
      , random
      , vector
    hs-source-dirs:   benches
    default-language: Haskell2010

test-suite random-cycle-test
    type: exitcode-stdio-1.0
    main-is: Main.hs  
    -- Modules included in this library but not exported.
    other-modules: 
      TestPartitions
      TestCycles
    -- LANGUAGE extensions used by modules in this package.
    -- other-extensions:
    build-depends:    
      base >=4.14.3.0 && <= 4.17.0.0
      , random-cycle
      , algebraic-graphs
      , tasty
      , tasty-hunit
      , tasty-quickcheck
      , random
      , vector
      , vector-algorithms
    hs-source-dirs:   test
    default-language: Haskell2010
