packages feed

sde-solver-0.1.0.0: src/Numeric/DSDE/SDE/Langevin.hs

{-# Language BangPatterns #-}

module Numeric.DSDE.SDE.Langevin where

import Numeric.DSDE.SDE

-- | SDE instance of the Langevin equation with rate r and diffusion sigma.
data Langevin p = Langevin !p !p

instance SDE Langevin where
  {-# SPECIALIZE INLINE f :: Langevin Double -> Double -> Double -> Double #-}
  f !(Langevin r _) _ !w_i = -r * w_i
  {-# SPECIALIZE INLINE g :: Langevin Double -> Double -> Double -> Double #-}
  g !(Langevin _ sigma) _ _ = sigma
  {-# SPECIALIZE INLINE partgoverparty :: Langevin Double -> Double -> Double -> Double #-}
  partgoverparty _ _ _ = 0