Copyright | Copyright (c) 2009-2014, David Sorokin <david.sorokin@gmail.com> |
---|---|
License | BSD3 |
Maintainer | David Sorokin <david.sorokin@gmail.com> |
Stability | experimental |
Safe Haskell | Safe-Inferred |
Language | Haskell2010 |
Tested with: GHC 7.8.3
The module defines something which is most close to the notion of analogous circuit as an opposite to the digital one.
- newtype Transform a b = Transform {
- runTransform :: Dynamics a -> Simulation (Dynamics b)
- delayTransform :: Dynamics Double -> Dynamics a -> Transform a a
- timeTransform :: Transform a Double
- integTransform :: Dynamics Double -> Transform Double Double
- integTransformEither :: Dynamics Double -> Transform (Either Double Double) Double
- sumTransform :: (Num a, Unboxed a) => Dynamics a -> Transform a a
- sumTransformEither :: (Num a, Unboxed a) => Dynamics a -> Transform (Either a a) a
The Transform Arrow
It allows representing an analogous circuit as an opposite to the digital one.
This is a transform of one time varying function to another usually
specified in the integration time points and then interpolated in
other time points with help of one of the memoization functions
like memo0Dynamics
.
Transform | |
|
Delaying the Transform
The Time Transform
timeTransform :: Transform a Double Source
A transform that returns the current modeling time.
Differential and Difference Equations
:: Dynamics Double | the initial value |
-> Transform (Either Double Double) Double | map either a new |
Like integTransform
but allows either setting a new Left
value of the integral,
or updating it by the specified Right
derivative.