Safe Haskell | None |
---|---|
Language | Haskell2010 |
Data.Array.Nested.Ranked
Synopsis
- newtype Ranked (n :: Nat) a = Ranked (Mixed (Replicate n ('Nothing :: Maybe Nat)) a)
- rquotArray :: forall a (n :: Nat). (IntElt a, PrimElt a) => Ranked n a -> Ranked n a -> Ranked n a
- rremArray :: forall a (n :: Nat). (IntElt a, PrimElt a) => Ranked n a -> Ranked n a -> Ranked n a
- ratan2Array :: forall a (n :: Nat). (FloatElt a, PrimElt a) => Ranked n a -> Ranked n a -> Ranked n a
- rshape :: forall a (n :: Nat). Elt a => Ranked n a -> IShR n
- rrank :: forall a (n :: Nat). Elt a => Ranked n a -> SNat n
- rsize :: forall a (n :: Nat). Elt a => Ranked n a -> Int
- rindex :: forall a (n :: Nat). Elt a => Ranked n a -> IIxR n -> a
- rindexPartial :: forall (n :: Natural) (m :: Natural) a. Elt a => Ranked (n + m) a -> IIxR n -> Ranked m a
- rgenerate :: forall (n :: Nat) a. KnownElt a => IShR n -> (IIxR n -> a) -> Ranked n a
- rsumOuter1 :: forall (n :: Natural) a. (NumElt a, PrimElt a) => Ranked (n + 1) a -> Ranked n a
- rsumAllPrim :: forall a (n :: Nat). (PrimElt a, NumElt a) => Ranked n a -> a
- rtranspose :: forall (n :: Nat) a. Elt a => PermR -> Ranked n a -> Ranked n a
- rappend :: forall (n :: Natural) a. Elt a => Ranked (n + 1) a -> Ranked (n + 1) a -> Ranked (n + 1) a
- rconcat :: forall (n :: Natural) a. Elt a => NonEmpty (Ranked (n + 1) a) -> Ranked (n + 1) a
- rscalar :: Elt a => a -> Ranked 0 a
- rfromVector :: forall (n :: Nat) a. PrimElt a => IShR n -> Vector a -> Ranked n a
- rtoVector :: forall a (n :: Nat). PrimElt a => Ranked n a -> Vector a
- runScalar :: Elt a => Ranked 0 a -> a
- remptyArray :: KnownElt a => Ranked 1 a
- rrerank :: forall (n1 :: Nat) (n2 :: Nat) (n :: Nat) a b. (PrimElt a, PrimElt b) => SNat n -> IShR n2 -> (Ranked n1 a -> Ranked n2 b) -> Ranked (n + n1) a -> Ranked (n + n2) b
- rreplicate :: forall (n :: Nat) (m :: Nat) a. Elt a => IShR n -> Ranked m a -> Ranked (n + m) a
- rreplicateScal :: forall (n :: Nat) a. PrimElt a => IShR n -> a -> Ranked n a
- rfromList1 :: Elt a => NonEmpty a -> Ranked 1 a
- rfromListOuter :: forall (n :: Nat) a. Elt a => NonEmpty (Ranked n a) -> Ranked (n + 1) a
- rfromListLinear :: forall (n :: Nat) a. Elt a => IShR n -> NonEmpty a -> Ranked n a
- rfromListPrim :: PrimElt a => [a] -> Ranked 1 a
- rfromListPrimLinear :: forall a (n :: Nat). PrimElt a => IShR n -> [a] -> Ranked n a
- rtoList :: Elt a => Ranked 1 a -> [a]
- rtoListOuter :: forall (n :: Natural) a. Elt a => Ranked (n + 1) a -> [Ranked n a]
- rtoListLinear :: forall a (n :: Nat). Elt a => Ranked n a -> [a]
- rslice :: forall (n :: Natural) a. Elt a => Int -> Int -> Ranked (n + 1) a -> Ranked (n + 1) a
- rrev1 :: forall (n :: Natural) a. Elt a => Ranked (n + 1) a -> Ranked (n + 1) a
- rreshape :: forall (n :: Nat) (n' :: Nat) a. Elt a => IShR n' -> Ranked n a -> Ranked n' a
- rflatten :: forall a (n :: Nat). Elt a => Ranked n a -> Ranked 1 a
- riota :: (Enum a, PrimElt a) => Int -> Ranked 1 a
- rminIndexPrim :: forall a (n :: Nat). (PrimElt a, NumElt a) => Ranked n a -> IIxR n
- rmaxIndexPrim :: forall a (n :: Nat). (PrimElt a, NumElt a) => Ranked n a -> IIxR n
- rdot1Inner :: forall (n :: Natural) a. (PrimElt a, NumElt a) => Ranked (n + 1) a -> Ranked (n + 1) a -> Ranked n a
- rdot :: forall a (n :: Nat). (PrimElt a, NumElt a) => Ranked n a -> Ranked n a -> a
- rnest :: forall (n :: Nat) (m :: Natural) a. Elt a => SNat n -> Ranked (n + m) a -> Ranked n (Ranked m a)
- runNest :: forall (n :: Nat) (m :: Nat) a. Elt a => Ranked n (Ranked m a) -> Ranked (n + m) a
- rzip :: forall a b (n :: Nat). (Elt a, Elt b) => Ranked n a -> Ranked n b -> Ranked n (a, b)
- runzip :: forall (n :: Nat) a b. Ranked n (a, b) -> (Ranked n a, Ranked n b)
- rlift :: forall (n1 :: Nat) (n2 :: Nat) a. Elt a => SNat n2 -> (forall (sh' :: [Maybe Nat]) b. Storable b => StaticShX sh' -> XArray (Replicate n1 ('Nothing :: Maybe Nat) ++ sh') b -> XArray (Replicate n2 ('Nothing :: Maybe Nat) ++ sh') b) -> Ranked n1 a -> Ranked n2 a
- rlift2 :: forall (n1 :: Nat) (n2 :: Nat) (n3 :: Nat) a. Elt a => SNat n3 -> (forall (sh' :: [Maybe Nat]) b. Storable b => StaticShX sh' -> XArray (Replicate n1 ('Nothing :: Maybe Nat) ++ sh') b -> XArray (Replicate n2 ('Nothing :: Maybe Nat) ++ sh') b -> XArray (Replicate n3 ('Nothing :: Maybe Nat) ++ sh') b) -> Ranked n1 a -> Ranked n2 a -> Ranked n3 a
- rtoXArrayPrim :: forall a (n :: Nat). PrimElt a => Ranked n a -> (IShR n, XArray (Replicate n ('Nothing :: Maybe Nat)) a)
- rfromXArrayPrim :: forall a (n :: Nat). PrimElt a => SNat n -> XArray (Replicate n ('Nothing :: Maybe Nat)) a -> Ranked n a
- rfromOrthotope :: forall a (n :: Nat). PrimElt a => SNat n -> Array n a -> Ranked n a
- rtoOrthotope :: forall a (n :: Nat). PrimElt a => Ranked n a -> Array n a
- rsumOuter1P :: forall (n :: Natural) a. (Storable a, NumElt a) => Ranked (n + 1) (Primitive a) -> Ranked n (Primitive a)
- rfromPrimitive :: forall a (n :: Nat). PrimElt a => Ranked n (Primitive a) -> Ranked n a
- rtoPrimitive :: forall a (n :: Nat). PrimElt a => Ranked n a -> Ranked n (Primitive a)
- rfromVectorP :: forall (n :: Nat) a. Storable a => IShR n -> Vector a -> Ranked n (Primitive a)
- rtoVectorP :: forall a (n :: Nat). Storable a => Ranked n (Primitive a) -> Vector a
- rrerankP :: forall (n1 :: Nat) (n2 :: Nat) (n :: Nat) a b. (Storable a, Storable b) => SNat n -> IShR n2 -> (Ranked n1 (Primitive a) -> Ranked n2 (Primitive b)) -> Ranked (n + n1) (Primitive a) -> Ranked (n + n2) (Primitive b)
- rreplicateScalP :: forall (n :: Nat) a. Storable a => IShR n -> a -> Ranked n (Primitive a)
- rtoXArrayPrimP :: forall (n :: Nat) a. Ranked n (Primitive a) -> (IShR n, XArray (Replicate n ('Nothing :: Maybe Nat)) a)
- rfromXArrayPrimP :: forall (n :: Nat) a. SNat n -> XArray (Replicate n ('Nothing :: Maybe Nat)) a -> Ranked n (Primitive a)
- liftRanked1 :: forall (n :: Natural) a b. (Mixed (Replicate n ('Nothing :: Maybe Nat)) a -> Mixed (Replicate n ('Nothing :: Maybe Nat)) b) -> Ranked n a -> Ranked n b
- liftRanked2 :: forall (n :: Natural) a b c. (Mixed (Replicate n ('Nothing :: Maybe Nat)) a -> Mixed (Replicate n ('Nothing :: Maybe Nat)) b -> Mixed (Replicate n ('Nothing :: Maybe Nat)) c) -> Ranked n a -> Ranked n b -> Ranked n c
Documentation
newtype Ranked (n :: Nat) a Source #
A rank-typed array: the number of dimensions of the array (its rank) is
represented on the type level as a Nat
.
Valid elements of a ranked arrays are described by the Elt
type class.
Because Ranked
itself is also an instance of Elt
, nested arrays are
supported (and are represented as a single, flattened, struct-of-arrays
array internally).
Instances
rquotArray :: forall a (n :: Nat). (IntElt a, PrimElt a) => Ranked n a -> Ranked n a -> Ranked n a Source #
rremArray :: forall a (n :: Nat). (IntElt a, PrimElt a) => Ranked n a -> Ranked n a -> Ranked n a Source #
ratan2Array :: forall a (n :: Nat). (FloatElt a, PrimElt a) => Ranked n a -> Ranked n a -> Ranked n a Source #
rsize :: forall a (n :: Nat). Elt a => Ranked n a -> Int Source #
The total number of elements in the array.
rindexPartial :: forall (n :: Natural) (m :: Natural) a. Elt a => Ranked (n + m) a -> IIxR n -> Ranked m a Source #
rgenerate :: forall (n :: Nat) a. KnownElt a => IShR n -> (IIxR n -> a) -> Ranked n a Source #
WARNING: All values returned from the function must have equal shape.
See the documentation of mgenerate
for more details.
rsumOuter1 :: forall (n :: Natural) a. (NumElt a, PrimElt a) => Ranked (n + 1) a -> Ranked n a Source #
rappend :: forall (n :: Natural) a. Elt a => Ranked (n + 1) a -> Ranked (n + 1) a -> Ranked (n + 1) a Source #
rconcat :: forall (n :: Natural) a. Elt a => NonEmpty (Ranked (n + 1) a) -> Ranked (n + 1) a Source #
remptyArray :: KnownElt a => Ranked 1 a Source #
rrerank :: forall (n1 :: Nat) (n2 :: Nat) (n :: Nat) a b. (PrimElt a, PrimElt b) => SNat n -> IShR n2 -> (Ranked n1 a -> Ranked n2 b) -> Ranked (n + n1) a -> Ranked (n + n2) b Source #
If there is a zero-sized dimension in the n
-prefix of the shape of the
input array, then there is no way to deduce the full shape of the output
array (more precisely, the n2
part): that could only come from calling
f
, and there are no subarrays to call f
on. orthotope
errors out in
this case; we choose to fill the n2
part of the output shape with zeros.
For example, if:
arr :: Ranked 5 Int -- of shape [3, 0, 4, 2, 21] f :: Ranked 2 Int -> Ranked 3 Float
then:
rrerank _ _ _ f arr :: Ranked 5 Float
and this result will have shape [3, 0, 4, 0, 0, 0]
. Note that the
"reranked" part (the last 3 entries) are zero; we don't know if f
intended
to return an array with shape all-0 here (it probably didn't), but there is
no better number to put here absent a subarray of the input to pass to f
.
rreplicate :: forall (n :: Nat) (m :: Nat) a. Elt a => IShR n -> Ranked m a -> Ranked (n + m) a Source #
rfromListPrim :: PrimElt a => [a] -> Ranked 1 a Source #
rslice :: forall (n :: Natural) a. Elt a => Int -> Int -> Ranked (n + 1) a -> Ranked (n + 1) a Source #
rminIndexPrim :: forall a (n :: Nat). (PrimElt a, NumElt a) => Ranked n a -> IIxR n Source #
Throws if the array is empty.
rmaxIndexPrim :: forall a (n :: Nat). (PrimElt a, NumElt a) => Ranked n a -> IIxR n Source #
Throws if the array is empty.
rdot1Inner :: forall (n :: Natural) a. (PrimElt a, NumElt a) => Ranked (n + 1) a -> Ranked (n + 1) a -> Ranked n a Source #
rdot :: forall a (n :: Nat). (PrimElt a, NumElt a) => Ranked n a -> Ranked n a -> a Source #
This has a temporary, suboptimal implementation in terms of mflatten
.
Prefer rdot1Inner
if applicable.
rnest :: forall (n :: Nat) (m :: Natural) a. Elt a => SNat n -> Ranked (n + m) a -> Ranked n (Ranked m a) Source #
runNest :: forall (n :: Nat) (m :: Nat) a. Elt a => Ranked n (Ranked m a) -> Ranked (n + m) a Source #
rzip :: forall a b (n :: Nat). (Elt a, Elt b) => Ranked n a -> Ranked n b -> Ranked n (a, b) Source #
rlift :: forall (n1 :: Nat) (n2 :: Nat) a. Elt a => SNat n2 -> (forall (sh' :: [Maybe Nat]) b. Storable b => StaticShX sh' -> XArray (Replicate n1 ('Nothing :: Maybe Nat) ++ sh') b -> XArray (Replicate n2 ('Nothing :: Maybe Nat) ++ sh') b) -> Ranked n1 a -> Ranked n2 a Source #
See the documentation of mlift
.
rlift2 :: forall (n1 :: Nat) (n2 :: Nat) (n3 :: Nat) a. Elt a => SNat n3 -> (forall (sh' :: [Maybe Nat]) b. Storable b => StaticShX sh' -> XArray (Replicate n1 ('Nothing :: Maybe Nat) ++ sh') b -> XArray (Replicate n2 ('Nothing :: Maybe Nat) ++ sh') b -> XArray (Replicate n3 ('Nothing :: Maybe Nat) ++ sh') b) -> Ranked n1 a -> Ranked n2 a -> Ranked n3 a Source #
See the documentation of mlift2
.
rtoXArrayPrim :: forall a (n :: Nat). PrimElt a => Ranked n a -> (IShR n, XArray (Replicate n ('Nothing :: Maybe Nat)) a) Source #
rfromXArrayPrim :: forall a (n :: Nat). PrimElt a => SNat n -> XArray (Replicate n ('Nothing :: Maybe Nat)) a -> Ranked n a Source #
rsumOuter1P :: forall (n :: Natural) a. (Storable a, NumElt a) => Ranked (n + 1) (Primitive a) -> Ranked n (Primitive a) Source #
rfromVectorP :: forall (n :: Nat) a. Storable a => IShR n -> Vector a -> Ranked n (Primitive a) Source #
rrerankP :: forall (n1 :: Nat) (n2 :: Nat) (n :: Nat) a b. (Storable a, Storable b) => SNat n -> IShR n2 -> (Ranked n1 (Primitive a) -> Ranked n2 (Primitive b)) -> Ranked (n + n1) (Primitive a) -> Ranked (n + n2) (Primitive b) Source #
rreplicateScalP :: forall (n :: Nat) a. Storable a => IShR n -> a -> Ranked n (Primitive a) Source #
rtoXArrayPrimP :: forall (n :: Nat) a. Ranked n (Primitive a) -> (IShR n, XArray (Replicate n ('Nothing :: Maybe Nat)) a) Source #
rfromXArrayPrimP :: forall (n :: Nat) a. SNat n -> XArray (Replicate n ('Nothing :: Maybe Nat)) a -> Ranked n (Primitive a) Source #