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

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

Numeric.DataFrame.ST

Description

Mutable DataFrames living in ST.

Synopsis

Documentation

class MutableFrame t ns Source #

Minimal complete definition

writeDataFrameOff#, readDataFrameOff#

Instances

MutableFrame Double ns Source # 

Methods

writeDataFrameOff# :: MDataFrame s Double ns -> Int# -> Double -> State# s -> State# s

readDataFrameOff# :: MDataFrame s Double ns -> Int# -> State# s -> (#VoidRep, PtrRepLifted, State# s, Double#)

MutableFrame Float ns Source # 

Methods

writeDataFrameOff# :: MDataFrame s Float ns -> Int# -> Float -> State# s -> State# s

readDataFrameOff# :: MDataFrame s Float ns -> Int# -> State# s -> (#VoidRep, PtrRepLifted, State# s, Float#)

MutableFrame Int ns Source # 

Methods

writeDataFrameOff# :: MDataFrame s Int ns -> Int# -> Int -> State# s -> State# s

readDataFrameOff# :: MDataFrame s Int ns -> Int# -> State# s -> (#VoidRep, PtrRepLifted, State# s, Int#)

MutableFrame Int8 ns Source # 

Methods

writeDataFrameOff# :: MDataFrame s Int8 ns -> Int# -> Int8 -> State# s -> State# s

readDataFrameOff# :: MDataFrame s Int8 ns -> Int# -> State# s -> (#VoidRep, PtrRepLifted, State# s, Int8#)

MutableFrame Int16 ns Source # 

Methods

writeDataFrameOff# :: MDataFrame s Int16 ns -> Int# -> Int16 -> State# s -> State# s

readDataFrameOff# :: MDataFrame s Int16 ns -> Int# -> State# s -> (#VoidRep, PtrRepLifted, State# s, Int16#)

MutableFrame Int32 ns Source # 

Methods

writeDataFrameOff# :: MDataFrame s Int32 ns -> Int# -> Int32 -> State# s -> State# s

readDataFrameOff# :: MDataFrame s Int32 ns -> Int# -> State# s -> (#VoidRep, PtrRepLifted, State# s, Int32#)

MutableFrame Int64 ns Source # 

Methods

writeDataFrameOff# :: MDataFrame s Int64 ns -> Int# -> Int64 -> State# s -> State# s

readDataFrameOff# :: MDataFrame s Int64 ns -> Int# -> State# s -> (#VoidRep, PtrRepLifted, State# s, Int64#)

MutableFrame Word ns Source # 

Methods

writeDataFrameOff# :: MDataFrame s Word ns -> Int# -> Word -> State# s -> State# s

readDataFrameOff# :: MDataFrame s Word ns -> Int# -> State# s -> (#VoidRep, PtrRepLifted, State# s, Word#)

MutableFrame Word8 ns Source # 

Methods

writeDataFrameOff# :: MDataFrame s Word8 ns -> Int# -> Word8 -> State# s -> State# s

readDataFrameOff# :: MDataFrame s Word8 ns -> Int# -> State# s -> (#VoidRep, PtrRepLifted, State# s, Word8#)

MutableFrame Word16 ns Source # 

Methods

writeDataFrameOff# :: MDataFrame s Word16 ns -> Int# -> Word16 -> State# s -> State# s

readDataFrameOff# :: MDataFrame s Word16 ns -> Int# -> State# s -> (#VoidRep, PtrRepLifted, State# s, Word16#)

MutableFrame Word32 ns Source # 

Methods

writeDataFrameOff# :: MDataFrame s Word32 ns -> Int# -> Word32 -> State# s -> State# s

readDataFrameOff# :: MDataFrame s Word32 ns -> Int# -> State# s -> (#VoidRep, PtrRepLifted, State# s, Word32#)

MutableFrame Word64 ns Source # 

Methods

writeDataFrameOff# :: MDataFrame s Word64 ns -> Int# -> Word64 -> State# s -> State# s

readDataFrameOff# :: MDataFrame s Word64 ns -> Int# -> State# s -> (#VoidRep, PtrRepLifted, State# s, Word64#)

data STDataFrame s t ns Source #

Mutable DataFrame that lives in ST. Internal representation is always a ByteArray.

data SomeSTDataFrame s t xns Source #

Mutable DataFrame of unknown dimensionality

Constructors

(FixedDim xns ns ~ ns, FixedXDim xns ns ~ xns, NumericFrame t ns) => SomeSTDataFrame (STDataFrame s t ns) 

newDataFrame :: forall t ns s. (PrimBytes t, Dimensions ns) => ST s (STDataFrame s t ns) Source #

Create a new mutable DataFrame.

copyDataFrame :: forall t as b' b bs asbs s. (ConcatList as (b :+ bs) asbs, Dimensions (b :+ bs), PrimBytes (DataFrame t (as +: b'))) => DataFrame t (as +: b') -> Idx (b :+ bs) -> STDataFrame s t asbs -> ST s () Source #

Copy one DataFrame into another mutable DataFrame at specified position.

copyMutableDataFrame :: forall t as b' b bs asbs s. (PrimBytes t, ConcatList as (b :+ bs) asbs, Dimensions (b :+ bs)) => STDataFrame s t (as +: b') -> Idx (b :+ bs) -> STDataFrame s t asbs -> ST s () Source #

Copy one mutable DataFrame into another mutable DataFrame at specified position.

unsafeFreezeDataFrame :: forall t ns s. PrimBytes (DataFrame t ns) => STDataFrame s t ns -> ST s (DataFrame t ns) Source #

Make a mutable DataFrame immutable, without copying.

freezeDataFrame :: forall t ns s. PrimBytes (DataFrame t ns) => STDataFrame s t ns -> ST s (DataFrame t ns) Source #

Copy content of a mutable DataFrame into a new immutable DataFrame.

thawDataFrame :: forall t ns s. PrimBytes (DataFrame t ns) => DataFrame t ns -> ST s (STDataFrame s t ns) Source #

Create a new mutable DataFrame and copy content of immutable one in there.

writeDataFrame :: forall t ns s. (MutableFrame t ns, Dimensions ns) => STDataFrame s t ns -> Idx ns -> Scalar t -> ST s () Source #

Write a single element at the specified index

readDataFrame :: forall t ns s. (MutableFrame t ns, Dimensions ns) => STDataFrame s t ns -> Idx ns -> ST s (Scalar t) Source #

Read a single element at the specified index

writeDataFrameOff :: forall t ns s. (MutableFrame t ns, Dimensions ns) => STDataFrame s t ns -> Int -> Scalar t -> ST s () Source #

Write a single element at the specified element offset

readDataFrameOff :: forall t ns s. (MutableFrame t ns, Dimensions ns) => STDataFrame s t ns -> Int -> ST s (Scalar t) Source #

Read a single element at the specified element offset