module QuantLib.Stochastic.Discretize
( module QuantLib.Stochastic.Discretize )
where
import QuantLib.Stochastic.Process
data Euler = Euler { eDt :: Double }
deriving (Show, Eq)
data EndEuler = EndEuler { eeDt :: Double }
deriving (Show, Eq)
instance Discretize Euler where
dDrift p e dot = (drift p dot)*(eDt e)
dDiff p e dot = (diff p dot)*sqrt (eDt e)
dDt _ e _ = eDt e
instance Discretize EndEuler where
dDrift p e dot = (drift p nextDot)*(eeDt e)
where nextDot = Dot ((getT dot) + (eeDt e)) (getX dot)
dDiff p e dot = (diff p nextDot)*sqrt (eeDt e)
where nextDot = Dot ((getT dot) + (eeDt e)) (getX dot)
dDt _ e _ = eeDt e