6#include <janus/janus.hpp>
22template <
typename Scalar>
struct State {
61 return Coeffs{.gain = K * std::sqrt(dt)};
79template <
typename Scalar>
81 const Scalar &noise_input) {
82 state.value = state.value + coeffs.
gain * noise_input;
99template <
typename Scalar>
101 const Scalar &noise_input) {
103 return step(state, coeffs, noise_input);
Definition RandomWalk.hpp:8
double expected_variance(double K, double t)
Compute expected variance at given time.
Definition RandomWalk.hpp:120
Scalar step(State< Scalar > &state, const Coeffs &coeffs, const Scalar &noise_input)
Step the random walk process.
Definition RandomWalk.hpp:80
State< Scalar > init_state()
Initialize random walk state to zero.
Definition RandomWalk.hpp:32
double expected_stddev(double K, double t)
Compute expected standard deviation at given time.
Definition RandomWalk.hpp:129
Coeffs compute_coeffs(double K, double dt)
Compute random walk coefficients.
Definition RandomWalk.hpp:60
Pre-computed random walk coefficients.
Definition RandomWalk.hpp:49
double gain
Noise input gain: K * √(Δt).
Definition RandomWalk.hpp:50
Random walk process state.
Definition RandomWalk.hpp:22
Scalar value
Accumulated random walk value.
Definition RandomWalk.hpp:23