:      !"#$%&'()*+,-./0123456789 (c) 2008-2011 Dan DoelDan Doel ExperimentalPortableNone3=K9A type of comparisons between two values of a given type.:;<:;<:;<(c) 2008-2011 Dan DoelDan Doel <dan.doel@gmail.com> Experimental3Non-portable (scoped type variables, bang patterns)None=JKM5The number of passes necessary to sort an array of esThe size of an auxiliary array4The radix function parameterized by the current pass+Sorts an array based on the Radix instance.CRadix sorts an array using custom radix information requires the number of passes to fully sort the array, the size of of auxiliary arrays necessary (should be one greater than the maximum value returned by the radix function), and a radix function, which takes the pass and an element, and returns the relevant radix.the number of passesthe size of auxiliary arraysthe radix functionthe array to be sorted=>?@ABCDEFGHIJK=>?@ABCDEFGHIJK(c) 2009-2010 Dan DoelDan Doel <dan.doel@gmail.com> ExperimentalNon-portable (bang patterns)None=K Finds an index in a given sorted vector at which the given element could be inserted while maintaining the sortedness of the vector.Finds an index in a given vector, which must be sorted with respect to the given comparison function, at which the given element could be inserted while preserving the vector's sortedness. Given a vector sorted with respect to a given comparison function in indices in [l,u), finds an index in [l,u] at which the given element could be inserted while preserving sortedness. Finds the lowest index in a given sorted vector at which the given element could be inserted while maintaining the sortedness. Finds the lowest index in a given vector, which must be sorted with respect to the given comparison function, at which the given element could be inserted while preserving the sortedness. Given a vector sorted with respect to a given comparison function on indices in [l,u), finds the lowest index in [l,u] at which the given element could be inserted while preserving sortedness. }Finds the greatest index in a given sorted vector at which the given element could be inserted while maintaining sortedness.Finds the greatest index in a given vector, which must be sorted with respect to the given comparison function, at which the given element could be inserted while preserving the sortedness.Given a vector sorted with respect to the given comparison function on indices in [l,u), finds the greatest index in [l,u] at which the given element could be inserted while preserving sortedness.Given a predicate that is guaraneteed to be monotone on the given vector, finds the first index at which the predicate returns True, or the length of the array if the predicate is false for the entire array.Given a predicate that is guaranteed to be monotone on the indices [l,u) in a given vector, finds the index in [l,u] at which the predicate turns from False to True (yielding u if the entire interval is False).        (c) 2008-2010 Dan DoelDan Doel ExperimentalPortableNone$Sorts the elements at the positions off8 and 'off + 1' in the given array using the comparison.Sorts the elements at the two given indices using the comparison. This is essentially a compare-and-swap, although the first index is assumed to be the lower of the two.CSorts the three elements starting at the given offset in the array.Sorts the elements at the three given indices. The indices are assumed to be given from lowest to highest, so if 'l < m < u' then 'sort3ByIndex cmp a m l u' essentially sorts the median of three into the lowest position in the array.0Sorts the four elements beginning at the offset.Sorts the elements at the four given indices. Like the 2 and 3 element versions, this assumes that the indices are given in increasing order, so it can be used to sort medians into particular positions and so on.(c) 2008-2010 Dan DoelDan Doel ExperimentalPortableNone=K?Sorts an entire array using the default comparison for the type.Sorts an entire array using a given comparison0Sorts the portion of an array delimited by [l,u)eSorts the portion of the array delimited by [l,u) under the assumption that [l,m) is already sorted.LL(c) 2011 Dan DoelDan Doel <dan.doel@gmail.com> Experimental4Non-portable (FlexibleContexts, ScopedTypeVariables)None3=KMqThe methods of this class specify the information necessary to sort arrays using the default ordering. The name b is meant to convey that index should return results in a similar way to indexing into a string.pGiven a representative of a stripe and an index number, this function should determine whether to stop sorting.5The size of the bucket array necessary for sorting esSDetermines which bucket a given element should inhabit for a particular iteration. Sorts an array using the default ordering. Both Lexicographic and Ord are necessary because the algorithm falls back to insertion sort for sufficiently small arrays.!A fully parameterized version of the sorting algorithm. Again, this function takes both radix information and a comparison, because the algorithms falls back to insertion sort for small arrays. !,a comparison for the insertion sort flalback'determines whether a stripe is completethe number of buckets necessarythe big-endian radix functionthe array to be sortedMNOPQRSTUVWXYZ[\ ! ! !MNOPQRSTUVWXYZ[\(c) 2008-2011 Dan DoelDan Doel <dan.doel@gmail.com> ExperimentalNon-portable (type operators)None=JK "1Sorts an entire array using the default ordering.#.Sorts an entire array using a custom ordering.$9Sorts a portion of an array [l,u) using a custom ordering%dMoves the lowest k elements to the front of the array. The elements will be in no particular order.& Moves the lowestt (as defined by the comparison) k elements to the front of the array. The elements will be in no particular order.' Moves the lowestx k elements in the portion [l,u) of the array into the positions [l,k+l). The elements will be in no particular order.(>Moves the lowest k elements to the front of the array, sorted.)^Moves the lowest k elements (as defined by the comparison) to the front of the array, sorted.*^Moves the lowest k elements in the portion [l,u) of the array into positions [l,k+l), sorted.+1Constructs a heap in a portion of an array [l, u),{Given a heap stored in a portion of an array [l,u), swaps the top of the heap with the element at u and rebuilds the heap.-Given a heap stored in a portion of an array [l,u) swaps the top of the heap with the element at position t, and rebuilds the heap..Given a heap stored in a portion of an array [l,u), sorts the highest values into [m,u). The elements in [l,m) are not in any particular order."#$%&'()*+,-.]^"#$%&'()*+,-."#$%&'()*+,-."#$%&'()*+,-.]^(c) 2008-2011 Dan DoelDan Doel <dan.doel@gmail.com> Experimental,Non-portable (type operators, bang patterns)None=JKM /1Sorts an entire array using the default ordering.0.Sorts an entire array using a custom ordering.19Sorts a portion of an array [l,u) using a custom ordering2MMoves the least k elements to the front of the array in no particular order.3lMoves the least k elements (as defined by the comparison) to the front of the array in no particular order.4bMoves the least k elements in the interval [l,u) to the positions [l,k+l) in no particular order.5=Moves the least k elements to the front of the array, sorted.6]Moves the least k elements (as defined by the comparison) to the front of the array, sorted.7SMoves the least k elements in the interval [l,u) to the positions [l,k+l), sorted. /01_234567`ab /01234567 /01234567 /01_234567`ab(c) 2008-2011 Dan DoelDan Doel <dan.doel@gmail.com> ExperimentalPortableNone=K8,Sorts an array using the default comparison.9)Sorts an array using a custom comparison.89cde898989cdef      !"#$% &"'()*+,-./0"'()*+, 1 2 3456789:;<=>?@ABCD6EFGHIJKLMNOPQRSTUVWGXYGZvector-algorithms-0.6.0.4Data.Vector.Algorithms.SearchData.Vector.Algorithms.RadixData.Vector.Algorithms.Optimal Data.Vector.Algorithms.Insertion#Data.Vector.Algorithms.AmericanFlagData.Vector.Algorithms.HeapData.Vector.Algorithms.IntroData.Vector.Algorithms.MergeData.Vector.Algorithms.Common ComparisonRadixpassessizeradixsortsortBy binarySearchbinarySearchBybinarySearchByBounds binarySearchLbinarySearchLBybinarySearchLByBounds binarySearchRbinarySearchRBybinarySearchRByBounds binarySearchPbinarySearchPBounds sort2ByOffset sort2ByIndex sort3ByOffset sort3ByIndex sort4ByOffset sort4ByIndex sortByBounds sortByBounds' Lexicographic terminateindexselectselectByselectByBounds partialSort partialSortBypartialSortByBoundsheapifypoppopTosortHeap copyOffsetinc countLoop radixLoopbody accumulatemoveLoop $fRadix(,) $fRadixWord64 $fRadixWord32 $fRadixWord16 $fRadixWord8 $fRadixWord $fRadixInt64 $fRadixInt32 $fRadixInt16 $fRadixInt8 $fRadixIntinsertflagLooppermute countStripe threshold$fLexicographicByteString$fLexicographicInt$fLexicographicInt64$fLexicographicInt32$fLexicographicInt16$fLexicographicInt8$fLexicographicWord$fLexicographicWord64$fLexicographicWord32$fLexicographicWord16$fLexicographicWord8 siftByOffset maximumChild introsort partitionByilgmergeSortWithBufmerge