| 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 | Haskell98 | 
Simulation.Aivika.Lattice.LIO
Contents
Description
Tested with: GHC 7.10.3
This module defines LIO as an instance of the MonadDES and EventIOQueueing type classes.
- 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.
data LIOLattice Source #
Specifies the lattice.
Arguments
| :: 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 probabilty 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.