2024-08-16 17:55:27 +00:00
|
|
|
//
|
|
|
|
// Created by dominik on 8/12/24.
|
|
|
|
//
|
|
|
|
|
|
|
|
#ifndef RWSIM_TIMESBASE_H
|
|
|
|
#define RWSIM_TIMESBASE_H
|
|
|
|
|
|
|
|
#include <random>
|
|
|
|
|
|
|
|
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;}
|
|
|
|
|
2024-09-16 17:52:51 +00:00
|
|
|
virtual void initialize() = 0;
|
2024-08-16 17:55:27 +00:00
|
|
|
virtual void draw_tau() = 0;
|
|
|
|
[[nodiscard]] double tau_wait() const;
|
|
|
|
|
2024-09-16 17:52:51 +00:00
|
|
|
protected:
|
2024-08-16 17:55:27 +00:00
|
|
|
double m_tau{1.};
|
2024-09-16 17:52:51 +00:00
|
|
|
double m_tau_jump{1.};
|
2024-08-16 17:55:27 +00:00
|
|
|
std::mt19937_64& m_rng;
|
|
|
|
};
|
|
|
|
|
|
|
|
#endif //RWSIM_TIMESBASE_H
|