| Safe Haskell | Safe-Infered |
|---|
Language.Paraiso.OM.Graph
Description
the components for constructing Orthotope Machine data flow draph. Most components take three arguments:
vector :: * -> *- The array dimension. It is a
Vectorthat defines the dimension of the Orthotope on which the OM operates. gauge :: *- The array index. The combination
vector gaugeneeds to be an instance ofCif you want to performShiftoperation. anot :: *- The annotations put on each node. If you want to use
Annotation,
anotneeds to be an instance ofMonoid.
- data Setup vector gauge anot = Setup {
- staticValues :: Vector (Named DynValue)
- globalAnnotation :: anot
- data Kernel vector gauge anot = Kernel {
- kernelName :: Name
- dataflow :: Graph vector gauge anot
- type Graph vector gauge anot = Gr (Node vector gauge anot) Edge
- nmap :: (a -> b) -> Graph v g a -> Graph v g b
- imap :: (Node -> a -> b) -> Graph v g a -> Graph v g b
- getA :: Node v g a -> a
- data Node vector gauge anot
- data Edge
- newtype StaticIdx = StaticIdx {
- fromStaticIdx :: Int
- data Inst vector gauge
Documentation
data Setup vector gauge anot Source
An OM Setup, a set of information needed before you start building a Kernel.
Constructors
| Setup | |
Fields
| |
data Kernel vector gauge anot Source
A Kernel for OM perfor a block of calculations on OM.
Constructors
| Kernel | |
Fields
| |
type Graph vector gauge anot = Gr (Node vector gauge anot) EdgeSource
The dataflow graph for Orthotope Machine. anot is an additional annotation.
imap :: (Node -> a -> b) -> Graph v g a -> Graph v g bSource
Map the Graph annotation from one type to another, while referring to the node indices.
data Node vector gauge anot Source
The Node for the dataflow Graph of the Orthotope machine.
The dataflow graph is a 2-part graph consisting of NValue and NInst nodes.
Constructors
| NValue DynValue anot | A value node. An |
| NInst (Inst vector gauge) anot | An instruction node. An |