easytensor-1.0.1.0: Pure, type-indexed haskell vector, matrix, and tensor library.

Copyright(c) Artem Chirkin
LicenseBSD3
Maintainerchirkin@arch.ethz.ch
Safe HaskellNone
LanguageHaskell2010

Numeric.DataFrame.Shape

Description

Construct new DataFrames from pieces.

Synopsis

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).

Methods

toList :: DataFrame t (ds +: z) -> [DataFrame t ds] Source #

Unwrap the last dimension of a DataFrame into a list of smaller frames

Instances
(Dimensions (ns +: z), PrimBytes t) => DataFrameToList t (ns :: [Nat]) (z :: Nat) Source # 
Instance details

Defined in Numeric.DataFrame.Shape

Methods

toList :: DataFrame t (ns +: z) -> [DataFrame t ns] Source #

DataFrameToList t (xns :: [XNat]) (xz :: XNat) Source # 
Instance details

Defined in Numeric.DataFrame.Shape

Methods

toList :: DataFrame t (xns +: xz) -> [DataFrame t xns] Source #

fromListN Source #

Arguments

:: 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 m and not greater than length ns.

-> [DataFrame t ns]

List of frames to concatenate

-> Maybe (DataFrame t (AsXDims ns +: XN m)) 

Concatenate a list of DataFrames. Returns Nothing if the list does not have enough elements or if provided length is invalid.

fromList Source #

Arguments

:: (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 DataFrames. 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.