Copyright | (c) Artem Chirkin |
---|---|
License | BSD3 |
Maintainer | chirkin@arch.ethz.ch |
Safe Haskell | None |
Language | Haskell2010 |
Construct new DataFrames from pieces.
- (<:>) :: forall (n :: Nat) (m :: Nat) (npm :: Nat) (ds :: [Nat]) (t :: Type). (PrimBytes (DataFrame t (ds +: n)), PrimBytes (DataFrame t (ds +: m)), PrimBytes (DataFrame t (ds +: npm)), npm ~ (n + m), n ~ (npm - m), m ~ (npm - n)) => DataFrame t (ds +: n) -> DataFrame t (ds +: m) -> DataFrame t (ds +: npm)
- (<::>) :: forall (ds :: [Nat]) (t :: Type). (PrimBytes (DataFrame t ds), PrimBytes (DataFrame t ds), PrimBytes (DataFrame t (ds +: 2 :: [Nat]))) => DataFrame t ds -> DataFrame t ds -> DataFrame t (ds +: 2 :: [Nat])
- (<+:>) :: forall (ds :: [Nat]) (n :: Nat) (m :: Nat) (t :: Type). (PrimBytes (DataFrame t (ds +: n)), PrimBytes (DataFrame t ds), PrimBytes (DataFrame t (ds +: m)), m ~ (n + 1)) => DataFrame t (ds +: n) -> DataFrame t ds -> DataFrame t (ds +: m)
- fromScalar :: SubSpace t '[] ds ds => Scalar t -> DataFrame t ds
- class DataFrameToList (t :: Type) (ds :: [k]) (z :: k) where
- fromListN :: forall (m :: Nat) (ns :: [Nat]) (t :: Type). (Dimensions ns, PrimBytes t) => Dim m -> Int -> [DataFrame t ns] -> Maybe (DataFrame t (AsXDims ns +: XN m))
- fromList :: forall m ns t. (Dimensions ns, PrimBytes t) => Dim m -> [DataFrame t ns] -> Maybe (DataFrame t (AsXDims ns +: XN m))
Documentation
(<:>) :: forall (n :: Nat) (m :: Nat) (npm :: Nat) (ds :: [Nat]) (t :: Type). (PrimBytes (DataFrame t (ds +: n)), PrimBytes (DataFrame t (ds +: m)), PrimBytes (DataFrame t (ds +: npm)), npm ~ (n + m), n ~ (npm - m), m ~ (npm - n)) => DataFrame t (ds +: n) -> DataFrame t (ds +: m) -> DataFrame t (ds +: npm) infixl 5 Source #
Append one DataFrame to another, sum up last dimension
(<::>) :: forall (ds :: [Nat]) (t :: Type). (PrimBytes (DataFrame t ds), PrimBytes (DataFrame t ds), PrimBytes (DataFrame t (ds +: 2 :: [Nat]))) => DataFrame t ds -> DataFrame t ds -> DataFrame t (ds +: 2 :: [Nat]) infixl 5 Source #
Append one DataFrame to another,
add another Dim = 2
to their dimension list.
(<+:>) :: forall (ds :: [Nat]) (n :: Nat) (m :: Nat) (t :: Type). (PrimBytes (DataFrame t (ds +: n)), PrimBytes (DataFrame t ds), PrimBytes (DataFrame t (ds +: m)), m ~ (n + 1)) => DataFrame t (ds +: n) -> DataFrame t ds -> DataFrame t (ds +: m) infixl 5 Source #
Grow the first DataFrame by adding the second one to it incrementing the last Dim in the list.
fromScalar :: SubSpace t '[] ds ds => Scalar t -> DataFrame t ds Source #
Broadcast scalar value onto a whole data frame
class DataFrameToList (t :: Type) (ds :: [k]) (z :: k) where Source #
Implement function toList
.
We need to create a dedicated type class for this
to make it polymorphic over kind k (Nat - XNat).
toList :: DataFrame t (ds +: z) -> [DataFrame t ds] Source #
Unwrap the last dimension of a DataFrame into a list of smaller frames
(Dimensions Nat ((+:) Nat ns z), PrimBytes t) => DataFrameToList Nat t ns z Source # | |
DataFrameToList XNat t xns xz Source # | |
:: forall (m :: Nat) (ns :: [Nat]) (t :: Type). (Dimensions ns, PrimBytes t) | |
=> Dim m | Minimum number of elements in a list |
-> Int | How many elements of a list to take.
Must be not smaller than |
-> [DataFrame t ns] | List of frames to concatenate |
-> Maybe (DataFrame t (AsXDims ns +: XN m)) |
Concatenate a list of DataFrame
s.
Returns Nothing
if the list does not have enough elements
or if provided length is invalid.
:: (Dimensions ns, PrimBytes t) | |
=> Dim m | Minimum number of elements in a list |
-> [DataFrame t ns] | List of frames to concatenate |
-> Maybe (DataFrame t (AsXDims ns +: XN m)) |
Concatenate a list of DataFrame
s.
Returns Nothing
if the list does not have enough elements.
Input must be parametrized by [Nat]
to make sure every element
in the input list has the same dimensionality.
Output is in [XNat]
, because the last dimension is unknown at compile time.