Copyright | Copyright (c) 2009-2016 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 8.0.1
The module defines the Dynamics
monad representing a time varying polymorphic function.
- data Dynamics a
- class DynamicsLift m where
- runDynamicsInStartTime :: Dynamics a -> Simulation a
- runDynamicsInStopTime :: Dynamics a -> Simulation a
- runDynamicsInIntegTimes :: Dynamics a -> Simulation [IO a]
- runDynamicsInTime :: Double -> Dynamics a -> Simulation a
- runDynamicsInTimes :: [Double] -> Dynamics a -> Simulation [IO a]
- catchDynamics :: Exception e => Dynamics a -> (e -> Dynamics a) -> Dynamics a
- finallyDynamics :: Dynamics a -> Dynamics b -> Dynamics a
- throwDynamics :: Exception e => e -> Dynamics a
- time :: Dynamics Double
- isTimeInteg :: Dynamics Bool
- integIteration :: Dynamics Int
- integPhase :: Dynamics Int
- traceDynamics :: String -> Dynamics a -> Dynamics a
Dynamics Monad
A value in the Dynamics
monad represents a polymorphic time varying function.
Monad Dynamics Source # | |
Functor Dynamics Source # | |
MonadFix Dynamics Source # | |
Applicative Dynamics Source # | |
MonadIO Dynamics Source # | |
ParameterLift Dynamics Source # | |
SimulationLift Dynamics Source # | |
DynamicsLift Dynamics Source # | |
ResultComputing Dynamics Source # | |
Eq (Dynamics a) Source # | |
Floating a => Floating (Dynamics a) Source # | |
Fractional a => Fractional (Dynamics a) Source # | |
Num a => Num (Dynamics a) Source # | |
Show (Dynamics a) Source # | |
class DynamicsLift m where Source #
A type class to lift the Dynamics
computations to other computations.
liftDynamics :: Dynamics a -> m a Source #
Lift the specified Dynamics
computation to another computation.
runDynamicsInStartTime :: Dynamics a -> Simulation a Source #
Run the Dynamics
computation in the initial time point.
runDynamicsInStopTime :: Dynamics a -> Simulation a Source #
Run the Dynamics
computation in the final time point.
runDynamicsInIntegTimes :: Dynamics a -> Simulation [IO a] Source #
Run the Dynamics
computation in all integration time points.
runDynamicsInTime :: Double -> Dynamics a -> Simulation a Source #
Run the Dynamics
computation in the specified time point.
runDynamicsInTimes :: [Double] -> Dynamics a -> Simulation [IO a] Source #
Run the Dynamics
computation in the specified time points.
Error Handling
catchDynamics :: Exception e => Dynamics a -> (e -> Dynamics a) -> Dynamics a Source #
Exception handling within Dynamics
computations.
finallyDynamics :: Dynamics a -> Dynamics b -> Dynamics a Source #
A computation with finalization part like the finally
function.
Simulation Time
isTimeInteg :: Dynamics Bool Source #
Whether the current time is an integration time.
integIteration :: Dynamics Int Source #
Return the integration iteration closest to the current simulation time.
integPhase :: Dynamics Int Source #
Return the integration phase for the current simulation time.
It is (-1)
for non-integration time points.