add namespaces and cmakelists for sub-dirs

This commit is contained in:
Dominik Demuth
2024-12-13 14:03:33 +01:00
parent e90c4c9543
commit e6331749b2
32 changed files with 604 additions and 440 deletions

View File

@ -4,33 +4,35 @@
#include <random>
#include <unordered_map>
class Distribution {
public:
virtual ~Distribution() = default;
namespace times {
class BaseDistribution {
public:
virtual ~BaseDistribution() = default;
Distribution(std::string, double, std::mt19937_64&);
explicit Distribution(std::string, std::mt19937_64&);
BaseDistribution(std::string, double, std::mt19937_64&);
explicit BaseDistribution(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; };
[[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>&);
[[nodiscard]] virtual std::unordered_map<std::string, double> getParameters() const;
virtual void setParameters(const std::unordered_map<std::string, double>&);
[[nodiscard]] virtual std::unordered_map<std::string, double> getParameters() const;
virtual void initialize() = 0;
virtual void draw_tau() = 0;
[[nodiscard]] double tau_wait() const;
virtual void initialize() = 0;
virtual void draw_tau() = 0;
[[nodiscard]] double tau_wait() const;
[[nodiscard]] virtual std::string toString() const = 0;
[[nodiscard]] virtual std::string toString() const = 0;
static Distribution* createFromInput(const std::string& input, std::mt19937_64& rng);
static BaseDistribution* 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;
};
protected:
std::string m_name{"BaseDistribution"};
double m_tau{1.};
double m_tau_jump{1.};
std::mt19937_64& m_rng;
};
}
#endif //RWSIM_TIMESBASE_H