úÎVUQmO      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMN`OPQRSTUVWXNGenerate a new array given its length and a function to compute each element. Y ,O(n), Compute a selector from a tags array. ?Select the elements of an array that have a corresponding tag.   packByTag [12, 24, 42, 93] [1, 0, 0, 1] 0  = [24, 42]  data values  tag values the tag of values to select data values that had that tag ICount the number of elements in array that are equal to the given value. LCount the number of elements in segments that are equal to the given value. Z[\]^/O(1). Take the number of elements in an array. An array with no elements. UO(n). Produce a new array by replicating a single element the given number of times. 8Produce an array by copying a portion of another array. %number of times to repeat the source 7length of source (can be less than the provided array) array elements to repeat 1O(1). Retrieve a numbered element from an array. 4O(n). Extract a subrange of elements from an array.  Example: extract [:23, 42, 93, 50, 27:] 1 3 = [:42, 93, 50:]  source array starting index in source array length of result array 6O(n). Drop some elements from the front of an array, ' returning the latter portion. .O(n). Forwards permutation of array elements.  source array /indices in the destination to copy elements to /O(n). Backwards permutation of array elements. Example bpermute [:50, 60, 20, 30:] 3 [:0, 3, 2:] = [:50, 30, 20:]  source array -indices in the source to copy elements from. !Combination of map and bpermute. BThe advantage of using this combined version is that we dont need G to apply the parameter function to source elements that dont appear  in the result. Default backwards permutation. J The values of the index-value pairs are written into the position in the @ result array that is indicated by the corresponding index. H All positions not covered by the index-value pairs will have the value E determined by the initialiser function for that index position. XO(n). Copy the source array in the destination, using new values for the given indices. O(n). Append two arrays. 'Interleave the elements of two arrays.  Example: interleave [1,2,3] [4,5,6] = [1,4,2,5,3,6] @Extract elements of an array where the associated flag is true. QCombine two arrays, using a tag array to tell us where to get each element from.  Example: combine [T,F,F,T,T,F] [1,2,3] [4,5,6] = [1,4,5,2,3,6] Like :, but use a precomputed selector to speed up the process. See dph-prim-seq:6Data.Array.Parallel.Unlifted.Sequential.Segmented.USel ( for a description of how this works. !KApply a worker function to each element of an array, yielding a new array. "CExtract the elements from an array that match the given predicate. #DO(1). Takes two arrays and returns an array of corresponding pairs. S If one array is short, excess elements of the longer array are discarded. $@O(1). Transform an array into an array of the first components, 0 and an array of the second components. %4O(1). Take the first elements of an array of pairs. &5O(1). Take the second elements of an array of pairs. 'HzipWith generalises zip by zipping with the function given as the first 2 argument, instead of a tupling function. (Left fold over an array. )JLeft fold over an array, using the first element to initialise the state. *<Compute the conjunction of all elements in a boolean array. +(Compute the sum of an array of numbers. , Similar to foldl; but return an array of the intermediate states, including ' the final state that is computed by foldl. --Tag each element of an array with its index.  Example: indexed [:42, 93, 13:] = [:(0, 42), (1, 93), (2, 13):] .Generate a range of Ints. /01234$segment descriptor of result aarray "segment descriptor of first array data of first array #segment descriptor of second array data of first array 56789:;<=>??O(1). Construct a selector. Selectors are used to speed up the   operation. See dph-prim-seq:6Data.Array.Parallel.Unlifted.Sequential.Segmented.USel ( for a description of how this works.  tags array indices array 1number of elements taken from first source array 2number of elements taken from second source array @(O(1). Get the tags array of a selector. A+O(1). Get the indices array of a selector. BJO(1). Get the number of elements that will be taken from the first array. CKO(1). Get the number of elements that will be taken from the second array. DEFGHIJ_KWrite an array to a file. LRead an array from a file. M(Convert an array to a list of elements. N(Convert a list of elements to an array. O  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNO-./01" !'#$%&()*+,42356789:;<= > ?@ABCD EFGH IJLKMNO  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMN`      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`dph-prim-interface-0.5.1.1Data.Array.Parallel.UnliftedIOEltSel2SegdArrayEltgeneratezipWith3zipWith4sum_s lengthsToSegdplusSegd tagsToSel2 packByTagpickcountcount_slengthempty replicaterepeat!:extractdroppermutebpermute mbpermute bpermuteDftupdate+:+ interleavepackcombinecombine2mapfilterzipunzipfstssndszipWithfoldfold1andsumscanindexed enumFromToenumFromThenToenumFromStepLenenumFromStepLenEach replicate_s replicate_rsappend_sfold_sfold1_sfold_rsum_r indices_s lengthSegd lengthsSegd indicesSegd elementsSegdmkSegdmkSel2tagsSel2 indicesSel2elementsSel2_0elementsSel2_1repSel2 mkSelRep2indicesSelRep2elementsSelRep2_0elementsSelRep2_1randomsrandomRshPuthGettoListfromListSelRep2 sel2_tags sel2_indicessel2_elements0sel2_elements1 segd_lengths segd_indices segd_elementsgenerate_cheap dph_mod_indexdph_plusdph_mult tagZeroesassertnest