added flexibility

This commit is contained in:
Dominik Demuth
2024-11-28 11:07:44 +01:00
parent 4b8922ab55
commit 1c8befac3f
40 changed files with 629 additions and 476 deletions

33
src/times/base.h Normal file
View File

@ -0,0 +1,33 @@
#ifndef RWSIM_TIMESBASE_H
#define RWSIM_TIMESBASE_H
#include <random>
#include <unordered_map>
class Distribution {
public:
virtual ~Distribution() = default;
Distribution(std::string, double, std::mt19937_64&);
explicit Distribution(std::string, std::mt19937_64&);
[[nodiscard]] double getTau() const { return m_tau; }
void setTau(const double tau) { m_tau = tau; }
[[nodiscard]] std::string getName() const { return m_name; };
virtual void setParameters(const std::unordered_map<std::string, double>&);
virtual void initialize() = 0;
virtual void draw_tau() = 0;
[[nodiscard]] double tau_wait() const;
static Distribution* createFromInput(const std::string& input, std::mt19937_64& rng);
protected:
std::string m_name{"BaseDistribution"};
double m_tau{1.};
double m_tau_jump{1.};
std::mt19937_64& m_rng;
};
#endif //RWSIM_TIMESBASE_H