dph-prim-par-0.6.1.1: Data Parallel Haskell segmented arrays. (production version)

Safe HaskellSafe-Infered

Data.Array.Parallel.Unlifted.Parallel.UPSel

Contents

Description

Parallel selectors.

Synopsis

Types

data UPSel2 Source

Contains a selector USel2, as well as an USelRep2 which says how to distribute this selector across the PEs.

See dph-prim-seq:Data.Array.Parallel.Unlifted.Sequential.Segmented.USel for more discussion of what selectors are for.

type UPSelRep2 = Dist ((Int, Int), (Int, Int))Source

Operations

tagsUPSel2 :: UPSel2 -> Vector TagSource

O(1). Get the tags of a selector.

indicesUPSel2 :: UPSel2 -> Vector IntSource

O(1). Get the indices of a selector.

elementsUPSel2_0 :: UPSel2 -> IntSource

O(1). Get the number of elements that will be taken from the first array.

elementsUPSel2_1 :: UPSel2 -> IntSource

O(1). Get the number of elements that will be taken from the second array.

selUPSel2 :: UPSel2 -> USel2Source

O(1). Take the sequential USel2 from a UPSel2.

repUPSel2 :: UPSel2 -> UPSelRep2Source

O(1). Take the UPSelRep2 from a UPSel2.

mkUPSel2 :: Vector Tag -> Vector Int -> Int -> Int -> UPSelRep2 -> UPSel2Source

O(1). Construct a selector. Wrapper for UPSel2.

mkUPSelRep2 :: Vector Tag -> UPSelRep2Source

Computes a UPSelRep2 from an array of tags. This is used when parallelising a combine operation. See the docs for UPSelRep2 for details.

elementsUPSelRep2_0 :: Vector Tag -> UPSelRep2 -> IntSource

O(n). Count the number of elements to take from the first array.

elementsUPSelRep2_1 :: Vector Tag -> UPSelRep2 -> IntSource

O(n). Count the number of elements to take from the second array.