6#include <janus/janus.hpp>
24template <
typename Scalar>
struct State {
45template <
typename Scalar>
74 double a = std::exp(-dt / tau);
75 double b = sigma_b * std::sqrt(1.0 - a * a);
76 return Coeffs{.a = a, .b = b};
95template <
typename Scalar>
97 const Scalar &noise_input) {
98 state.bias = coeffs.
a * state.bias + coeffs.
b * noise_input;
115template <
typename Scalar>
117 const Scalar &noise_input) {
119 return step(state, coeffs, noise_input);
135 return sigma_b * sigma_b;
149 return -tau / 2.0 * std::log(1.0 - fraction);
Definition BiasInstability.hpp:9
State< Scalar > init_state()
Initialize state to zero bias.
Definition BiasInstability.hpp:34
Scalar step(State< Scalar > &state, const Coeffs &coeffs, const Scalar &noise_input)
Step the bias instability process.
Definition BiasInstability.hpp:96
double time_to_fraction(double tau, double fraction)
Time to reach fraction of steady-state variance.
Definition BiasInstability.hpp:148
Coeffs compute_coeffs(double sigma_b, double tau, double dt)
Compute bias instability coefficients.
Definition BiasInstability.hpp:73
double steady_state_variance(double sigma_b)
Steady-state variance of bias instability.
Definition BiasInstability.hpp:134
Discretized bias instability coefficients.
Definition BiasInstability.hpp:60
double b
Input gain: σ_b·√(1-a²).
Definition BiasInstability.hpp:62
double a
State transition coefficient: exp(-Δt/τ).
Definition BiasInstability.hpp:61
Bias instability state.
Definition BiasInstability.hpp:24
Scalar bias
Current bias value.
Definition BiasInstability.hpp:25