| Copyright | Copyright (c) 2009-2017 David Sorokin <david.sorokin@gmail.com> |
|---|---|
| License | BSD3 |
| Maintainer | David Sorokin <david.sorokin@gmail.com> |
| Stability | experimental |
| Safe Haskell | None |
| Language | Haskell2010 |
Simulation.Aivika.Dynamics
Description
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.
Instances
| 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 # | |
| ResultItemable (ResultValue a) => ResultProvider (Dynamics a) Source # | |
| (Ix i, Show i, ResultItemable (ResultValue [e])) => ResultProvider (Dynamics (Array i e)) Source # | |
| ResultItemable (ResultValue [e]) => ResultProvider (Dynamics (Vector e)) Source # | |
| (ResultItemable (ResultValue a), ResultItemable (ResultValue (TimingStats a))) => ResultProvider (Dynamics (TimingCounter a)) Source # | |
| (ResultItemable (ResultValue a), ResultItemable (ResultValue (SamplingStats a))) => ResultProvider (Dynamics (SamplingCounter a)) Source # | |
class DynamicsLift m where Source #
A type class to lift the Dynamics computations to other computations.
Minimal complete definition
Methods
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.