#ifndef _RC_H_
#define _RC_H_

// rc ode:
// R * C * dV_c/dt + V_c = epsilon
// dV_c / dt = (epsilon - V_c) / R * C // g is the R.h.s of this equation
// V_c(t + dt) = V_c(t) + dt / (R * C) * (epsilon - V_c)

typedef struct _rc_state {
    double r, c, eps;
} rc_state;

rc_state rc_state_create(double r, double c, double eps);

double rc_g(double v, void *rc);

double rc_advance(double v0, double dt, rc_state *state);

double exact_solution(double t, double v_ini, rc_state *state);

#endif