Copyright | Copyright (c) 2009-2015, David Sorokin <david.sorokin@gmail.com> |
---|---|
License | BSD3 |
Maintainer | David Sorokin <david.sorokin@gmail.com> |
Stability | experimental |
Safe Haskell | Safe |
Language | Haskell2010 |
Simulation.Aivika.Simulation
Description
Tested with: GHC 7.10.1
The module defines the Simulation
monad that represents a computation within
the simulation run.
- data Simulation a
- class SimulationLift m where
- liftSimulation :: Simulation a -> m a
- runSimulation :: Simulation a -> Specs -> IO a
- runSimulations :: Simulation a -> Specs -> Int -> [IO a]
- runSimulationByIndex :: Simulation a -> Specs -> Int -> Int -> IO a
- catchSimulation :: Exception e => Simulation a -> (e -> Simulation a) -> Simulation a
- finallySimulation :: Simulation a -> Simulation b -> Simulation a
- throwSimulation :: Exception e => e -> Simulation a
- memoSimulation :: Simulation a -> Simulation (Simulation a)
- data SimulationException = forall e . Exception e => SimulationException e
- data SimulationAbort = SimulationAbort String
- data SimulationRetry = SimulationRetry String
Simulation
data Simulation a Source
A value in the Simulation
monad represents a computation
within the simulation run.
class SimulationLift m where Source
A type class to lift the simulation computations to other computations.
Methods
liftSimulation :: Simulation a -> m a Source
Lift the specified Simulation
computation to another computation.
runSimulation :: Simulation a -> Specs -> IO a Source
Run the simulation using the specified specs.
runSimulations :: Simulation a -> Specs -> Int -> [IO a] Source
Run the given number of simulations using the specified specs,
where each simulation is distinguished by its index simulationIndex
.
Arguments
:: Simulation a | the simulation model |
-> Specs | the simulation specs |
-> Int | the number of runs in series |
-> Int | the index of the current run (started from 1) |
-> IO a |
Run the simulation by the specified specs and run index in series.
Error Handling
catchSimulation :: Exception e => Simulation a -> (e -> Simulation a) -> Simulation a Source
Exception handling within Simulation
computations.
finallySimulation :: Simulation a -> Simulation b -> Simulation a Source
A computation with finalization part like the finally
function.
throwSimulation :: Exception e => e -> Simulation a Source
Like the standard throw
function.
Memoization
memoSimulation :: Simulation a -> Simulation (Simulation a) Source
Memoize the Simulation
computation, always returning the same value
within a simulation run.
Exceptions
data SimulationException Source
The root of simulation exceptions.
Constructors
forall e . Exception e => SimulationException e | A particular simulation exception. |
data SimulationAbort Source
An exception that signals of aborting the simulation.
Constructors
SimulationAbort String | The exception to abort the simulation. |
Instances
data SimulationRetry Source
An exception that signals that the current computation should be retried as possible, which feature may be supported by the simulation engine or not.
Constructors
SimulationRetry String | The exception to retry the computation. |
Instances