ADPfusion-0.2.0.4: Efficient, high-level dynamic programming.

Safe HaskellNone

ADP.Fusion.Table

Contents

Synopsis

Mutable table with adaptive storage.

data MTbl i xs Source

Constructors

MTbl !(ENZ i) !xs 

Instances

(Monad m, PrimMonad m, Elms ls Subword, MkStream m ls Subword, MPrimArrayOps arr (:. Z Subword) x) => MkStream m (:!: ls (MTbl Subword (MutArr m (arr (:. Z Subword) x)))) Subword 
(Monad m, PrimMonad m, MPrimArrayOps arr (:. is i) x, Elms ls (:. is i), NonTermValidIndex (:. is i), TableIndices (:. is i), MkStream m ls (:. is i)) => MkStream m (:!: ls (MTbl (:. is i) (MutArr m (arr (:. is i) x)))) (:. is i) 
Build (MTbl i x) 
EmptyENZ (ENZ i) => EmptyTable (MTbl i xs) 
(ValidIndex ls Subword, Monad m, MPrimArrayOps arr (:. Z Subword) x) => ValidIndex (:!: ls (MTbl Subword (MutArr m (arr (:. Z Subword) x)))) Subword 
Elms ls Subword => Elms (:!: ls (MTbl Subword (MutArr m (arr (:. Z Subword) x)))) Subword 
(ValidIndex ls (:. is i), MPrimArrayOps arr (:. is i) x, NonTermValidIndex (:. is i)) => ValidIndex (:!: ls (MTbl (:. is i) (MutArr m (arr (:. is i) x)))) (:. is i) 
Elms ls (:. is i) => Elms (:!: ls (MTbl (:. is i) (MutArr m (arr (:. is i) x)))) (:. is i) 

mTblSw :: ENE -> MutArr m (arr (Z :. Subword) x) -> MTbl Subword (MutArr m (arr (Z :. Subword) x))Source

mTbl :: ENZ i -> MutArr m (arr i x) -> MTbl i (MutArr m (arr i x))Source

class TableIndices i whereSource

Generate the list of indices for use in table lookup.

Don't touch stuff in greek! ζ is the interior stack of arguments, α th stack of saved indices

Methods

tableIndices :: Monad m => InOut i -> ENZ i -> i -> Stream m ((ζ :!: α) :!: i) -> Stream m ((ζ :!: α) :!: i)Source

Instances

Subword

multi-dim indices

data BtTbl i xs f Source

Constructors

BtTbl !(ENZ i) !xs !f 

Instances

(Monad m, Elms ls Subword, Unbox x, MkStream m ls Subword) => MkStream m (:!: ls (SwBtTbl m x b)) Subword 
(Monad m, Elms ls (:. is i), ExtShape (:. is i), Shape (:. is i), Unbox x, NonTermValidIndex (:. is i), TableIndices (:. is i), MkStream m ls (:. is i)) => MkStream m (:!: ls (DefBtTbl m (:. is i) x b)) (:. is i) 
(ValidIndex ls Subword, Unbox x) => ValidIndex (:!: ls (SwBtTbl m x b)) Subword 
Elms ls Subword => Elms (:!: ls (SwBtTbl m x b)) Subword 
(ValidIndex ls (:. is i), Shape (:. is i), ExtShape (:. is i), Unbox x, NonTermValidIndex (:. is i)) => ValidIndex (:!: ls (DefBtTbl m (:. is i) x b)) (:. is i) 
Elms ls (:. is i) => Elms (:!: ls (DefBtTbl m (:. is i) x b)) (:. is i) 
Build (BtTbl i xs f) 
EmptyENZ (ENZ i) => EmptyTable (BtTbl i xs f) 

btTbl :: ENZ i -> xs -> f -> BtTbl i xs fSource

type DefBtTbl m isi x b = BtTbl isi (Unboxed isi x) (isi -> m (Stream m b))Source

type SwBtTbl m x b = BtTbl Subword (Unboxed (Z :. Subword) x) (Subword -> m (Stream m b))Source

class EmptyTable x whereSource

Methods

toEmptyT :: x -> xSource

toNonEmptyT :: x -> xSource

Instances

EmptyENZ (ENZ i) => EmptyTable (MTbl i xs) 
EmptyENZ (ENZ i) => EmptyTable (BtTbl i xs f)