Copyright | Copyright (c) 2016-2017 David Sorokin <david.sorokin@gmail.com> |
---|---|
License | BSD3 |
Maintainer | David Sorokin <david.sorokin@gmail.com> |
Stability | experimental |
Safe Haskell | None |
Language | Haskell2010 |
Tested with: GHC 7.10.3
This module defines LIO
as an instance of the MonadDES
and EventIOQueueing
type classes.
Synopsis
- data LIO a
- data LIOLattice
- lattice :: Int -> (Int -> Int -> Int) -> LIOLattice
- newRandomLattice :: Int -> IO LIOLattice
- newRandomLatticeWithProb :: Double -> Int -> IO LIOLattice
- runLIO :: LIOLattice -> LIO a -> IO a
- latticeTimeIndex :: LIO Int
- latticeMemberIndex :: LIO Int
- latticeParentMemberIndex :: LIO (Maybe Int)
- latticeSize :: LIO Int
- latticeTime :: Parameter LIO Double
- latticeTimes :: Parameter LIO [Double]
- latticeTimeStep :: Parameter LIO Double
- findLatticeTimeIndex :: Double -> Parameter LIO Int
- enqueueEventWithLatticeTimes :: Event LIO () -> Event LIO ()
Documentation
The LIO
computation that can be run as nested one on the lattice node.
Instances
data LIOLattice Source #
Specifies the lattice.
:: Int | the lattice size |
-> (Int -> Int -> Int) | get the parent member index by the specified time and member indices |
-> LIOLattice |
Return a lattice by the specifed size and the parent member function.
newRandomLattice :: Int -> IO LIOLattice Source #
Create a new random lattice by the specified size with equal probabilities, whether the interior child node derives from the left or right parents.
newRandomLatticeWithProb :: Double -> Int -> IO LIOLattice Source #
Create a new random lattice by the specified probability and size, where the probability defines whether the interior child node derives from the right parent.
latticeTimeIndex :: LIO Int Source #
Return the lattice time index starting from 0. The index should be less than or equaled to latticeSize
.
latticeMemberIndex :: LIO Int Source #
Return the lattice member index starting from 0. It is always less than or equaled to latticeTimeIndex
.
latticeParentMemberIndex :: LIO (Maybe Int) Source #
Return the parent member index starting from 0 for non-root lattice nodes.
latticeSize :: LIO Int Source #
Return the lattice size.
findLatticeTimeIndex :: Double -> Parameter LIO Int Source #
Find the lattice time index by the specified modeling time.
enqueueEventWithLatticeTimes :: Event LIO () -> Event LIO () Source #
Actuate the event handler in the lattice node time points.