Safe Haskell | None |
---|
Parallel combinators for segmented unboxed arrays
- indexsFromVector :: Unbox a => Vector a -> Vector Int -> Vector a
- indexsFromVectorsUPVSegdP :: (Unbox a, Unboxes a) => Vectors a -> UPVSegd -> Vector (Int, Int) -> Vector a
- indexsFromVectorsUPVSegd :: (Unbox a, Unboxes a) => Vectors a -> UPVSegd -> Vector (Int, Int) -> Vector a
- extractsFromNestedUPSSegd :: Unbox a => UPSSegd -> Vector (Vector a) -> Vector a
- extractsFromVectorsUPSSegd :: (Unbox a, Unboxes a) => UPSSegd -> Vectors a -> Vector a
- extractsFromVectorsUPVSegdP :: (Unbox a, Unboxes a) => UPVSegd -> Vectors a -> Vector a
- extractsFromVectorsUPVSegd :: (Unbox a, Unboxes a) => UPVSegd -> Vectors a -> Vector a
- extractsFromVectorsUPSSegdSegmap :: (Unbox a, Unboxes a) => UPSSegd -> Vectors a -> Vector Int -> Vector a
Scattered indexing
indexsFromVector :: Unbox a => Vector a -> Vector Int -> Vector aSource
Lookup elements from a Vector
.
TODO: make this parallel.
indexsFromVectorsUPVSegdP :: (Unbox a, Unboxes a) => Vectors a -> UPVSegd -> Vector (Int, Int) -> Vector aSource
indexsFromVectorsUPVSegd :: (Unbox a, Unboxes a) => Vectors a -> UPVSegd -> Vector (Int, Int) -> Vector aSource
Lookup elements from some Vectors through a UPVSegd
Scattered extracts
extractsFromNestedUPSSegd :: Unbox a => UPSSegd -> Vector (Vector a) -> Vector aSource
Copy segments from a nested vectors and concatenate them into a new array.
extractsFromVectorsUPSSegd :: (Unbox a, Unboxes a) => UPSSegd -> Vectors a -> Vector aSource
TODO: make this parallel.
extractsFromVectorsUPVSegdP :: (Unbox a, Unboxes a) => UPVSegd -> Vectors a -> Vector aSource
Parallel extracts from UPVSegd and Segmap TODO: This just distributes the segmap over the gang, and will be unbalanced if there aren't many segments, or they have varying sizes.