Name: psqueues Version: 0.2.8.0 X-revision: 1 License: BSD3 License-file: LICENSE Maintainer: Jasper Van der Jeugt Bug-reports: https://github.com/jaspervdj/psqueues/issues Synopsis: Pure priority search queues Category: Data Structures Build-type: Simple Cabal-version: >=1.10 Tested-with: GHC==9.6.1, GHC==9.4.2, GHC==9.2.2, GHC==9.0.2, GHC==8.10.7, GHC==8.8.4, GHC==8.6.5, GHC==8.4.4, GHC==8.2.2, GHC==8.0.2 Description: The psqueues package provides in three different flavors. . * @OrdPSQ k p v@, which uses the @Ord k@ instance to provide fast insertion, deletion and lookup. This implementation is based on Ralf Hinze's . Hence, it is similar to the library, although it is considerably faster and provides a slightly different API. . * @IntPSQ p v@ is a far more efficient implementation. It fixes the key type to @Int@ and uses a (like @IntMap@) with an additional min-heap property. . * @HashPSQ k p v@ is a fairly straightforward extension of @IntPSQ@: it simply uses the keys' hashes as indices in the @IntPSQ@. If there are any hash collisions, it uses an @OrdPSQ@ to resolve those. The performance of this implementation is comparable to that of @IntPSQ@, but it is more widely applicable since the keys are not restricted to @Int@, but rather to any @Hashable@ datatype. . Each of the three implementations provides the same API, so they can be used interchangeably. The benchmarks show how they perform relative to one another, and also compared to the other Priority Search Queue implementations on Hackage: and . . <> . <> . Typical applications of Priority Search Queues include: . * Caches, and more specifically LRU Caches; . * Schedulers; . * Pathfinding algorithms, such as Dijkstra's and A*. Extra-source-files: CHANGELOG Source-repository head type: git location: http://github.com/jaspervdj/psqueues.git Library Default-language: Haskell2010 Ghc-options: -O2 -Wall Hs-source-dirs: src Build-depends: base >= 4.2 && < 5 , deepseq >= 1.2 && < 1.6 , hashable >= 1.1.2.3 && < 1.6 if impl(ghc>=6.10) Build-depends: ghc-prim Exposed-modules: Data.HashPSQ Data.IntPSQ Data.OrdPSQ Other-modules: Data.BitUtil Data.HashPSQ.Internal Data.IntPSQ.Internal Data.OrdPSQ.Internal Benchmark psqueues-benchmarks Default-language: Haskell2010 Ghc-options: -Wall Hs-source-dirs: src benchmarks Main-is: Main.hs Type: exitcode-stdio-1.0 Other-modules: BenchmarkTypes Data.BitUtil Data.HashPSQ Data.HashPSQ.Benchmark Data.HashPSQ.Internal Data.IntPSQ Data.IntPSQ.Benchmark Data.IntPSQ.Internal Data.OrdPSQ Data.OrdPSQ.Benchmark Data.OrdPSQ.Internal Data.PSQueue.Benchmark Build-depends: containers >= 0.5 , unordered-containers >= 0.2.4 , criterion >= 0.8 , mtl >= 2.1 , PSQueue >= 1.1 , random >= 1.0 , base , deepseq , ghc-prim , hashable , psqueues Test-suite psqueues-tests Cpp-options: -DTESTING -DSTRICT Default-language: Haskell2010 Ghc-options: -Wall Hs-source-dirs: src tests Main-is: Main.hs Type: exitcode-stdio-1.0 Other-modules: Data.BitUtil Data.HashPSQ Data.HashPSQ.Internal Data.HashPSQ.Tests Data.IntPSQ Data.IntPSQ.Internal Data.IntPSQ.Tests Data.OrdPSQ Data.OrdPSQ.Internal Data.OrdPSQ.Tests Data.PSQ.Class Data.PSQ.Class.Gen Data.PSQ.Class.Tests Data.PSQ.Class.Util Build-depends: HUnit >= 1.2 && < 1.7 , QuickCheck >= 2.7 && < 2.15 , tasty >= 1.2 && < 1.6 , tasty-hunit >= 0.9 && < 0.11 , tasty-quickcheck >= 0.8 && < 0.11 , base , array , deepseq , ghc-prim , hashable , psqueues , tagged