// // Created by dominik on 8/12/24. // #ifndef RWSIM_TIMESBASE_H #define RWSIM_TIMESBASE_H #include class Distribution { public: virtual ~Distribution() = default; Distribution(double, std::mt19937_64&); explicit Distribution(std::mt19937_64&); [[nodiscard]] double getTau() const { return m_tau; } void setTau(const double tau) { m_tau = tau;} virtual void initialize() = 0; virtual void draw_tau() = 0; [[nodiscard]] double tau_wait() const; protected: double m_tau{1.}; double m_tau_jump{1.}; std::mt19937_64& m_rng; }; #endif //RWSIM_TIMESBASE_H