packages feed

variety-0.1.0.0: variety.cabal

cabal-version:      3.0
name:               variety
version:            0.1.0.0
synopsis:           integer arithmetic codes

description:        The @Variety@ module provides functions to optimally encode and decode sequences
                    of value-base pairs assuming uniform probability.

                    If codes get too large and slow to process, @Variety.Bounded@ provides similar
                    interface with a precision parameter at small cost to code length.

                    The @Combinatorics@ module provides functions to optimally encode and decode
                    common combinatorial objects through ranking and unranking.

                    The @Elias@ module provides entirely non-parametric encoding and decoding of
                    positive integers. The usual definition doesn't allow for an encoding of 0, so a
                    mapping is baked into the functions in @Elias.Natural@ that shifts the number line
                    by 1.

license:            MIT
license-file:       LICENSE
author:             nbos
maintainer:         nbos@nbos.ca
homepage:           https://github.com/nbos/variety
bug-reports:        https://github.com/nbos/variety/issues

-- copyright:
category:           Codec
build-type:         Simple

extra-doc-files:    CHANGELOG.md

source-repository head
    type: git
    location: https://github.com/nbos/variety
                    
common warnings
    ghc-options: -Wall

library
    import:           warnings
    exposed-modules:  Codec.Arithmetic.Variety
                      Codec.Arithmetic.Variety.BitVec
                      Codec.Arithmetic.Variety.Bounded
                      Codec.Arithmetic.Combinatorics

                      Codec.Elias
                      Codec.Elias.Natural
    -- other-modules:
    -- other-extensions:
    build-depends:    base ^>=4.17.2.1
                    , bytestring >= 0.11.5 && < 0.12
                    , containers >= 0.6.7 && < 0.7
                    , exact-combinatorics >= 0.2.0 && < 0.3
                    , extra >= 1.8 && < 1.9

    hs-source-dirs:   src
    default-language: Haskell2010

test-suite variety-test
    import:           warnings
    default-language: Haskell2010
    -- other-modules:
    -- other-extensions:
    type:             exitcode-stdio-1.0
    hs-source-dirs:   test
    main-is:          Main.hs
    build-depends:
        base ^>=4.17.2.1,
        variety,
        QuickCheck,
        HUnit