aivika-transformers-2.0: Transformers for the Aivika simulation library

CopyrightCopyright (c) 2009-2014, David Sorokin <david.sorokin@gmail.com>
LicenseBSD3
MaintainerDavid Sorokin <david.sorokin@gmail.com>
Stabilityexperimental
Safe HaskellSafe-Inferred
LanguageHaskell2010

Simulation.Aivika.Trans.Transform.Extra

Contents

Description

Tested with: GHC 7.8.3

This module defines auxiliary computations such as interpolation ones that complement the memoization, for example. There are scan computations too.

Synopsis

Interpolation

initTransform :: Monad m => Transform m a a Source

A transform that returns the initial value.

discreteTransform :: Monad m => Transform m a a Source

A transform that discretizes the computation in the integration time points.

interpolatingTransform :: Monad m => Transform m a a Source

A tranform that interpolates the computation based on the integration time points only. Unlike the discreteTransform computation it knows about the intermediate time points that are used in the Runge-Kutta method.

Scans

scanTransform :: (MonadComp m, MonadFix m) => (a -> b -> a) -> a -> Transform m a a -> Transform m b a Source

Like the standard scanl function but applied to values in the integration time points. The accumulator values are transformed according to the third argument, which should be either memo0Transform or its unboxed version.

scan1Transform :: (MonadComp m, MonadFix m) => (a -> a -> a) -> Transform m a a -> Transform m a a Source

Like the standard scanl1 function but applied to values in the integration time points. The accumulator values are transformed according to the second argument, which should be either memo0Transform or its unboxed version.