This module (as well as the type-specific modules Data.Array.Parallel.Prelude.*
) are a
temporary kludge needed as DPH programs cannot directly use the (non-vectorised) functions from
the standard Prelude. It also exports some conversion helpers.
This module should not be explicitly imported in user code anymore. User code should only
import Data.Array.Parallel
and, until the vectoriser supports type classes, the type-specific
modules Data.Array.Parallel.Prelude.*
.
- data Bool
- otherwise :: Bool
- (&&) :: Bool -> Bool -> Bool
- (||) :: Bool -> Bool -> Bool
- not :: Bool -> Bool
- andP :: [:Bool:] -> Bool
- orP :: [:Bool:] -> Bool
- and_l :: PArray Bool -> PArray Bool -> PArray Bool
- or_l :: PArray Bool -> PArray Bool -> PArray Bool
- not_l :: PArray Bool -> PArray Bool
- tup2 :: (PA a, PA b) => a :-> (b :-> (a, b))
- tup3 :: (PA a, PA b, PA c) => a :-> (b :-> (c :-> (a, b, c)))
- data PArray a
- class Elt a => Scalar a where
- fromScalarPData :: PData a -> Array a
- toScalarPData :: Array a -> PData a
- toUArrPA :: Scalar a => PArray a -> Array a
- fromUArrPA' :: Scalar a => Array a -> PArray a
- fromUArrPA_2' :: (Scalar a, Scalar b) => Array (a, b) -> PArray (a, b)
- fromUArrPA_3 :: (Scalar a, Scalar b, Scalar c) => Int -> Array ((a, b), c) -> PArray (a, b, c)
- fromUArrPA_3' :: (Scalar a, Scalar b, Scalar c) => Array ((a, b), c) -> PArray (a, b, c)
- nestUSegdPA' :: Segd -> PArray a -> PArray (PArray a)
Documentation
data Bool
Lifted/bulk parallel arrays This contains the array length, along with the element data.
class Elt a => Scalar a whereSource
Class of scalar types. Scalar types are the ones that we can store in our underlying U.Arrays (which are currently implemented as Data.Vectors).
To perform an operation on a PData array of scalar elements, we coerce it to the underling U.Array and use the corresponding U.Array operators.
fromScalarPData :: PData a -> Array aSource
toScalarPData :: Array a -> PData aSource
fromUArrPA' :: Scalar a => Array a -> PArray aSource
Create a PArray out of a scalar U.Array, reading the length directly from the U.Array.
fromUArrPA_2' :: (Scalar a, Scalar b) => Array (a, b) -> PArray (a, b)Source
Convert a U.Array of pairs to a PArray, reading the length directly from the U.Array.
fromUArrPA_3 :: (Scalar a, Scalar b, Scalar c) => Int -> Array ((a, b), c) -> PArray (a, b, c)Source
Convert a U.Array of triples to a PArray.