module Numeric.DDE.Types (
RHS
, HistorySnapshot (..)
, Input (..)
, InputSnapshot (..)
, State (..)
, Stepper1 (..)
) where
import qualified Data.Vector.Storable as V
type RHS = (State, HistorySnapshot, InputSnapshot) -> State
newtype State = State { _state :: V.Vector Double }
newtype InputSnapshot = Inp { _insnap :: Double }
newtype Input = Input { _input :: V.Vector Double }
newtype HistorySnapshot = Hist { _histsnap :: V.Vector Double }
newtype Stepper1 = Stepper1 {
_stepper
:: Double
-> RHS
-> State
-> (Double, Double)
-> (Double, Double)
-> State
}