-- Hoogle documentation, generated by Haddock -- See Hoogle, http://www.haskell.org/hoogle/ -- | Fast and flexible quicksort implementation for mutable vectors -- -- Quicksort implementation developed with performance in mind. Has good -- default single-threaded sort and provides parallelised versions that -- are actually faster than the single-threaded version. Users can define -- new parallelisation methods. -- -- Good starting point: -- --
-- import Data.Vector.Algorithms.Quicksort qualified as Quick ---- -- Then call as -- --
-- Quick.sort xs --@package vector-quicksort @version 0.2 module Data.Vector.Algorithms.Quicksort.Predefined.BitonicIntST bitonicSortIntST :: MVector s Int64 -> ST s () module Data.Vector.Algorithms.Quicksort.Predefined.PIntSequentialMedian3IO sortPIntSequentialMedian3IO :: MVector RealWorld Int64 -> IO () module Data.Vector.Algorithms.Quicksort.Predefined.PIntParallelStrategiesMedian3or5IO sortPIntParallelStrategiesMedian3or5IO :: MVector RealWorld Int64 -> IO () module Data.Vector.Algorithms.Quicksort.Predefined.PIntParallelStrategiesMedian3IO sortPIntParallelStrategiesMedian3IO :: MVector RealWorld Int64 -> IO () module Data.Vector.Algorithms.Quicksort.Predefined.PIntParallelMedian3or5IO sortPIntParallelMedian3or5IO :: MVector RealWorld Int64 -> IO () module Data.Vector.Algorithms.Quicksort.Predefined.PIntParallelMedian3IO sortPIntParallelMedian3IO :: MVector RealWorld Int64 -> IO () module Data.Vector.Algorithms.Quicksort.Predefined.PIntSequentialMedian3ST sortPIntSequentialMedian3ST :: MVector s Int64 -> ST s () module Data.Vector.Algorithms.Quicksort.Predefined.PIntParallelStrategiesMedian3or5ST sortPIntParallelStrategiesMedian3or5ST :: MVector s Int64 -> ST s () module Data.Vector.Algorithms.Quicksort.Predefined.PIntParallelStrategiesMedian3ST sortPIntParallelStrategiesMedian3ST :: MVector s Int64 -> ST s () module Data.Vector.Algorithms.Quicksort.Predefined.PIntSequentialMedian3or5IO sortPIntSequentialMedian3or5IO :: MVector RealWorld Int64 -> IO () module Data.Vector.Algorithms.Quicksort.Predefined.PIntSequentialMedian3or5ST sortPIntSequentialMedian3or5ST :: MVector s Int64 -> ST s () module Data.Vector.Algorithms.Quicksort.Predefined.Pair data TestPair a b TestPair :: a -> b -> TestPair a b toTuple :: TestPair a b -> (a, b) instance (GHC.Show.Show a, GHC.Show.Show b) => GHC.Show.Show (Data.Vector.Algorithms.Quicksort.Predefined.Pair.TestPair a b) instance (Data.Vector.Unboxed.Base.Unbox a, Data.Vector.Unboxed.Base.Unbox b) => Data.Vector.Generic.Mutable.Base.MVector Data.Vector.Unboxed.Base.MVector (Data.Vector.Algorithms.Quicksort.Predefined.Pair.TestPair a b) instance (Data.Vector.Unboxed.Base.Unbox a, Data.Vector.Unboxed.Base.Unbox b) => Data.Vector.Generic.Base.Vector Data.Vector.Unboxed.Base.Vector (Data.Vector.Algorithms.Quicksort.Predefined.Pair.TestPair a b) instance Data.Vector.Unboxed.Base.IsoUnbox (Data.Vector.Algorithms.Quicksort.Predefined.Pair.TestPair a b) (a, b) instance (Data.Vector.Unboxed.Base.Unbox a, Data.Vector.Unboxed.Base.Unbox b) => Data.Vector.Unboxed.Base.Unbox (Data.Vector.Algorithms.Quicksort.Predefined.Pair.TestPair a b) instance GHC.Classes.Eq a => GHC.Classes.Eq (Data.Vector.Algorithms.Quicksort.Predefined.Pair.TestPair a b) instance GHC.Classes.Ord a => GHC.Classes.Ord (Data.Vector.Algorithms.Quicksort.Predefined.Pair.TestPair a b) module Data.Vector.Algorithms.Quicksort.Predefined.SortTriple data SortTriple SortTriple :: !Double -> !Double -> !Word64 -> SortTriple data family MVector s a data family Vector a instance Data.Vector.Generic.Mutable.Base.MVector Data.Vector.Unboxed.Base.MVector Data.Vector.Algorithms.Quicksort.Predefined.SortTriple.SortTriple instance Data.Vector.Generic.Base.Vector Data.Vector.Unboxed.Base.Vector Data.Vector.Algorithms.Quicksort.Predefined.SortTriple.SortTriple instance GHC.Classes.Eq Data.Vector.Algorithms.Quicksort.Predefined.SortTriple.SortTriple instance GHC.Classes.Ord Data.Vector.Algorithms.Quicksort.Predefined.SortTriple.SortTriple instance Data.Vector.Unboxed.Base.IsoUnbox Data.Vector.Algorithms.Quicksort.Predefined.SortTriple.SortTriple (GHC.Types.Double, GHC.Types.Double, GHC.Word.Word64) instance Data.Vector.Unboxed.Base.Unbox Data.Vector.Algorithms.Quicksort.Predefined.SortTriple.SortTriple instance Data.Primitive.Types.Prim Data.Vector.Algorithms.Quicksort.Predefined.SortTriple.SortTriple module Data.Vector.Algorithms.Quicksort.Predefined.PTripleSequentialMedian3ST sortPTripleSequentialMedian3ST :: MVector s SortTriple -> ST s () module Data.Vector.Algorithms.Quicksort.Predefined.PTripleSequentialMedian3or5ST sortPTripleSequentialMedian3or5ST :: MVector s SortTriple -> ST s () module Data.Vector.Algorithms.Quicksort.Predefined.UIntSequentialMedian3IO sortUIntSequentialMedian3IO :: MVector RealWorld Int64 -> IO () module Data.Vector.Algorithms.Quicksort.Predefined.UIntParallelStrategiesMedian3or5IO sortUIntParallelStrategiesMedian3or5IO :: MVector RealWorld Int64 -> IO () module Data.Vector.Algorithms.Quicksort.Predefined.UIntParallelStrategiesMedian3IO sortUIntParallelStrategiesMedian3IO :: MVector RealWorld Int64 -> IO () module Data.Vector.Algorithms.Quicksort.Predefined.UIntSequentialMedian3ST sortUIntSequentialMedian3ST :: MVector s Int64 -> ST s () module Data.Vector.Algorithms.Quicksort.Predefined.UIntParallelStrategiesMedian3or5ST sortUIntParallelStrategiesMedian3or5ST :: MVector s Int64 -> ST s () module Data.Vector.Algorithms.Quicksort.Predefined.UIntParallelStrategiesMedian3ST sortUIntParallelStrategiesMedian3ST :: MVector s Int64 -> ST s () module Data.Vector.Algorithms.Quicksort.Predefined.UIntSequentialMedian3or5IO sortUIntSequentialMedian3or5IO :: MVector RealWorld Int64 -> IO () module Data.Vector.Algorithms.Quicksort.Predefined.UIntSequentialMedian3or5ST sortUIntSequentialMedian3or5ST :: MVector s Int64 -> ST s () module Data.Vector.Algorithms.Quicksort.Predefined.UPairSequentialMedian3IO sortUPairSequentialMedian3IO :: MVector RealWorld (TestPair Int32 Int32) -> IO () module Data.Vector.Algorithms.Quicksort.Predefined.UPairParallelStrategiesMedian3or5IO sortUPairParallelStrategiesMedian3or5IO :: MVector RealWorld (TestPair Int32 Int32) -> IO () module Data.Vector.Algorithms.Quicksort.Predefined.UPairParallelStrategiesMedian3IO sortUPairParallelStrategiesMedian3IO :: MVector RealWorld (TestPair Int32 Int32) -> IO () module Data.Vector.Algorithms.Quicksort.Predefined.UPairSequentialMedian3ST sortUPairSequentialMedian3ST :: MVector s (TestPair Int32 Int32) -> ST s () module Data.Vector.Algorithms.Quicksort.Predefined.UPairParallelStrategiesMedian3or5ST sortUPairParallelStrategiesMedian3or5ST :: MVector s (TestPair Int32 Int32) -> ST s () module Data.Vector.Algorithms.Quicksort.Predefined.UPairParallelStrategiesMedian3ST sortUPairParallelStrategiesMedian3ST :: MVector s (TestPair Int32 Int32) -> ST s () module Data.Vector.Algorithms.Quicksort.Predefined.UPairSequentialMedian3or5IO sortUPairSequentialMedian3or5IO :: MVector RealWorld (TestPair Int32 Int32) -> IO () module Data.Vector.Algorithms.Quicksort.Predefined.UPairSequentialMedian3or5ST sortUPairSequentialMedian3or5ST :: MVector s (TestPair Int32 Int32) -> ST s () module Data.Vector.Algorithms.Quicksort.Predefined.UTripleSequentialMedian3ST sortUTripleSequentialMedian3ST :: MVector s SortTriple -> ST s () module Data.Vector.Algorithms.Quicksort.Predefined.UTripleSequentialMedian3or5ST sortUTripleSequentialMedian3or5ST :: MVector s SortTriple -> ST s () module Data.Vector.Algorithms.Quicksort.Predefined.UTupleSequentialMedian3IO sortUTupleSequentialMedian3IO :: MVector RealWorld (Int32, Int32) -> IO () module Data.Vector.Algorithms.Quicksort.Predefined.UTupleParallelStrategiesMedian3or5IO sortUTupleParallelStrategiesMedian3or5IO :: MVector RealWorld (Int32, Int32) -> IO () module Data.Vector.Algorithms.Quicksort.Predefined.UTupleParallelStrategiesMedian3IO sortUTupleParallelStrategiesMedian3IO :: MVector RealWorld (Int32, Int32) -> IO () module Data.Vector.Algorithms.Quicksort.Predefined.UTupleSequentialMedian3ST sortUTupleSequentialMedian3ST :: MVector s (Int32, Int32) -> ST s () module Data.Vector.Algorithms.Quicksort.Predefined.UTupleParallelStrategiesMedian3or5ST sortUTupleParallelStrategiesMedian3or5ST :: MVector s (Int32, Int32) -> ST s () module Data.Vector.Algorithms.Quicksort.Predefined.UTupleParallelStrategiesMedian3ST sortUTupleParallelStrategiesMedian3ST :: MVector s (Int32, Int32) -> ST s () module Data.Vector.Algorithms.Quicksort.Predefined.UTupleSequentialMedian3or5IO sortUTupleSequentialMedian3or5IO :: MVector RealWorld (Int32, Int32) -> IO () module Data.Vector.Algorithms.Quicksort.Predefined.UTupleSequentialMedian3or5ST sortUTupleSequentialMedian3or5ST :: MVector s (Int32, Int32) -> ST s () module Data.Vector.Algorithms.Quicksort.Predefined.VIntSequentialMedian3IO sortVIntSequentialMedian3IO :: MVector RealWorld Int64 -> IO () module Data.Vector.Algorithms.Quicksort.Predefined.VIntParallelStrategiesMedian3or5IO sortVIntParallelStrategiesMedian3or5IO :: MVector RealWorld Int64 -> IO () module Data.Vector.Algorithms.Quicksort.Predefined.VIntParallelStrategiesMedian3IO sortVIntParallelStrategiesMedian3IO :: MVector RealWorld Int64 -> IO () module Data.Vector.Algorithms.Quicksort.Predefined.VIntSequentialMedian3ST sortVIntSequentialMedian3ST :: MVector s Int64 -> ST s () module Data.Vector.Algorithms.Quicksort.Predefined.VIntParallelStrategiesMedian3or5ST sortVIntParallelStrategiesMedian3or5ST :: MVector s Int64 -> ST s () module Data.Vector.Algorithms.Quicksort.Predefined.VIntParallelStrategiesMedian3ST sortVIntParallelStrategiesMedian3ST :: MVector s Int64 -> ST s () module Data.Vector.Algorithms.Quicksort.Predefined.VIntSequentialMedian3or5IO sortVIntSequentialMedian3or5IO :: MVector RealWorld Int64 -> IO () module Data.Vector.Algorithms.Quicksort.Predefined.VIntSequentialMedian3or5ST sortVIntSequentialMedian3or5ST :: MVector s Int64 -> ST s () module Data.Vector.Algorithms.Quicksort.Predefined.VPairSequentialMedian3IO sortVPairSequentialMedian3IO :: MVector RealWorld (TestPair Int32 Int32) -> IO () module Data.Vector.Algorithms.Quicksort.Predefined.VPairParallelStrategiesMedian3or5IO sortVPairParallelStrategiesMedian3or5IO :: MVector RealWorld (TestPair Int32 Int32) -> IO () module Data.Vector.Algorithms.Quicksort.Predefined.VPairParallelStrategiesMedian3IO sortVPairParallelStrategiesMedian3IO :: MVector RealWorld (TestPair Int32 Int32) -> IO () module Data.Vector.Algorithms.Quicksort.Predefined.VPairSequentialMedian3ST sortVPairSequentialMedian3ST :: MVector s (TestPair Int32 Int32) -> ST s () module Data.Vector.Algorithms.Quicksort.Predefined.VPairParallelStrategiesMedian3or5ST sortVPairParallelStrategiesMedian3or5ST :: MVector s (TestPair Int32 Int32) -> ST s () module Data.Vector.Algorithms.Quicksort.Predefined.VPairParallelStrategiesMedian3ST sortVPairParallelStrategiesMedian3ST :: MVector s (TestPair Int32 Int32) -> ST s () module Data.Vector.Algorithms.Quicksort.Predefined.VPairSequentialMedian3or5IO sortVPairSequentialMedian3or5IO :: MVector RealWorld (TestPair Int32 Int32) -> IO () module Data.Vector.Algorithms.Quicksort.Predefined.VPairSequentialMedian3or5ST sortVPairSequentialMedian3or5ST :: MVector s (TestPair Int32 Int32) -> ST s () module Data.Vector.Algorithms.Quicksort.Predefined.VTupleSequentialMedian3IO sortVTupleSequentialMedian3IO :: MVector RealWorld (Int32, Int32) -> IO () module Data.Vector.Algorithms.Quicksort.Predefined.VTupleParallelStrategiesMedian3or5IO sortVTupleParallelStrategiesMedian3or5IO :: MVector RealWorld (Int32, Int32) -> IO () module Data.Vector.Algorithms.Quicksort.Predefined.VTupleParallelStrategiesMedian3IO sortVTupleParallelStrategiesMedian3IO :: MVector RealWorld (Int32, Int32) -> IO () module Data.Vector.Algorithms.Quicksort.Predefined.VTupleSequentialMedian3ST sortVTupleSequentialMedian3ST :: MVector s (Int32, Int32) -> ST s () module Data.Vector.Algorithms.Quicksort.Predefined.VTupleParallelStrategiesMedian3or5ST sortVTupleParallelStrategiesMedian3or5ST :: MVector s (Int32, Int32) -> ST s () module Data.Vector.Algorithms.Quicksort.Predefined.VTupleParallelStrategiesMedian3ST sortVTupleParallelStrategiesMedian3ST :: MVector s (Int32, Int32) -> ST s () module Data.Vector.Algorithms.Quicksort.Predefined.VTupleSequentialMedian3or5IO sortVTupleSequentialMedian3or5IO :: MVector RealWorld (Int32, Int32) -> IO () module Data.Vector.Algorithms.Quicksort.Predefined.VTupleSequentialMedian3or5ST sortVTupleSequentialMedian3or5ST :: MVector s (Int32, Int32) -> ST s ()