module Simulation.Aivika.Trans.Transform.Memo
(memoTransform,
memo0Transform,
iteratingTransform) where
import Simulation.Aivika.Trans.Dynamics
import Simulation.Aivika.Trans.Dynamics.Memo
import Simulation.Aivika.Trans.Transform
import Simulation.Aivika.Trans.SD
memoTransform :: MonadSD m => Transform m e e
{-# INLINE memoTransform #-}
memoTransform :: forall (m :: * -> *) e. MonadSD m => Transform m e e
memoTransform = (Dynamics m e -> Simulation m (Dynamics m e)) -> Transform m e e
forall (m :: * -> *) a b.
(Dynamics m a -> Simulation m (Dynamics m b)) -> Transform m a b
Transform Dynamics m e -> Simulation m (Dynamics m e)
forall e. Dynamics m e -> Simulation m (Dynamics m e)
forall (m :: * -> *) e.
MonadMemo m =>
Dynamics m e -> Simulation m (Dynamics m e)
memoDynamics
memo0Transform :: MonadSD m => Transform m e e
{-# INLINE memo0Transform #-}
memo0Transform :: forall (m :: * -> *) e. MonadSD m => Transform m e e
memo0Transform = (Dynamics m e -> Simulation m (Dynamics m e)) -> Transform m e e
forall (m :: * -> *) a b.
(Dynamics m a -> Simulation m (Dynamics m b)) -> Transform m a b
Transform Dynamics m e -> Simulation m (Dynamics m e)
forall e. Dynamics m e -> Simulation m (Dynamics m e)
forall (m :: * -> *) e.
MonadMemo m =>
Dynamics m e -> Simulation m (Dynamics m e)
memo0Dynamics
iteratingTransform :: MonadSD m => Transform m () ()
{-# INLINE iteratingTransform #-}
iteratingTransform :: forall (m :: * -> *). MonadSD m => Transform m () ()
iteratingTransform = (Dynamics m () -> Simulation m (Dynamics m ()))
-> Transform m () ()
forall (m :: * -> *) a b.
(Dynamics m a -> Simulation m (Dynamics m b)) -> Transform m a b
Transform Dynamics m () -> Simulation m (Dynamics m ())
forall (m :: * -> *).
MonadMemo m =>
Dynamics m () -> Simulation m (Dynamics m ())
iterateDynamics