Safe Haskell | Safe-Inferred |
---|---|
Language | Haskell2010 |
Foreign.Heap
Description
Implementation of pairing heaps stored off-heap
Synopsis
- data Heap k a
- data NEHeap k a = Heap k a (Box (List (NEHeap k a)))
- singletonN :: (Representable k, Representable a) => k %1 -> a %1 -> Pool %1 -> NEHeap k a
- mergeN :: forall k a. (Representable k, Representable a, Movable k, Ord k) => NEHeap k a %1 -> NEHeap k a %1 -> Pool %1 -> NEHeap k a
- mergeN' :: forall k a. (Representable k, Representable a, Movable k, Ord k) => NEHeap k a %1 -> Heap k a %1 -> Pool %1 -> NEHeap k a
- extractMinN :: (Representable k, Representable a, Movable k, Ord k) => NEHeap k a %1 -> Pool %1 -> (k, a, Heap k a)
- pairUp :: forall k a. (Representable k, Representable a, Movable k, Ord k) => List (NEHeap k a) %1 -> Pool %1 -> Heap k a
- empty :: Heap k a
- singleton :: forall k a. (Representable k, Representable a) => k %1 -> a %1 -> Pool %1 -> Heap k a
- extractMin :: (Representable k, Representable a, Movable k, Ord k) => Heap k a %1 -> Pool %1 -> Maybe (k, a, Heap k a)
- merge :: forall k a. (Representable k, Representable a, Movable k, Ord k) => Heap k a %1 -> Heap k a %1 -> Pool %1 -> Heap k a
- foldl :: forall k a b. (Representable k, Representable a, Movable k, Ord k) => (b %1 -> k %1 -> a %1 -> b) -> b %1 -> Heap k a %1 -> Pool %1 -> b
- unfold :: forall k a s. (Representable k, Representable a, Movable k, Ord k) => (s -> Maybe ((k, a), s)) -> s -> Pool %1 -> Heap k a
- ofList :: (Representable k, Representable a, Movable k, Ord k) => [(k, a)] -> Pool %1 -> Heap k a
- toList :: (Representable k, Representable a, Movable k, Ord k) => Heap k a %1 -> Pool %1 -> [(k, a)]
- sort :: forall k a. (Representable k, Representable a, Movable k, Ord k, Movable a) => [(k, a)] -> [(k, a)]
Documentation
Instances
(Representable k, Representable a) => Representable (NEHeap k a) Source # | |
(Representable k, Representable a) => MkRepresentable (NEHeap k a) (k, a, Box (List (NEHeap k a))) Source # | |
type AsKnown (NEHeap k a) Source # | |
Non-empty heap primitives
singletonN :: (Representable k, Representable a) => k %1 -> a %1 -> Pool %1 -> NEHeap k a Source #
mergeN :: forall k a. (Representable k, Representable a, Movable k, Ord k) => NEHeap k a %1 -> NEHeap k a %1 -> Pool %1 -> NEHeap k a Source #
mergeN' :: forall k a. (Representable k, Representable a, Movable k, Ord k) => NEHeap k a %1 -> Heap k a %1 -> Pool %1 -> NEHeap k a Source #
extractMinN :: (Representable k, Representable a, Movable k, Ord k) => NEHeap k a %1 -> Pool %1 -> (k, a, Heap k a) Source #
pairUp :: forall k a. (Representable k, Representable a, Movable k, Ord k) => List (NEHeap k a) %1 -> Pool %1 -> Heap k a Source #
Heap primitives
singleton :: forall k a. (Representable k, Representable a) => k %1 -> a %1 -> Pool %1 -> Heap k a Source #
extractMin :: (Representable k, Representable a, Movable k, Ord k) => Heap k a %1 -> Pool %1 -> Maybe (k, a, Heap k a) Source #
merge :: forall k a. (Representable k, Representable a, Movable k, Ord k) => Heap k a %1 -> Heap k a %1 -> Pool %1 -> Heap k a Source #
Heap sort
foldl :: forall k a b. (Representable k, Representable a, Movable k, Ord k) => (b %1 -> k %1 -> a %1 -> b) -> b %1 -> Heap k a %1 -> Pool %1 -> b Source #
Guaranteed to yield pairs in ascending key order
unfold :: forall k a s. (Representable k, Representable a, Movable k, Ord k) => (s -> Maybe ((k, a), s)) -> s -> Pool %1 -> Heap k a Source #
Strict: stream must terminate.
ofList :: (Representable k, Representable a, Movable k, Ord k) => [(k, a)] -> Pool %1 -> Heap k a Source #
toList :: (Representable k, Representable a, Movable k, Ord k) => Heap k a %1 -> Pool %1 -> [(k, a)] Source #
sort :: forall k a. (Representable k, Representable a, Movable k, Ord k, Movable a) => [(k, a)] -> [(k, a)] Source #