first commit

This commit is contained in:
Dominik Demuth
2024-08-16 19:55:27 +02:00
commit 17f95627a9
22 changed files with 25458 additions and 0 deletions

13
times/base.cpp Normal file
View File

@ -0,0 +1,13 @@
//
// Created by dominik on 8/12/24.
//
#include "base.h"
Distribution::Distribution(const double tau, std::mt19937_64 &rng) : m_tau(tau), m_rng(rng) {}
Distribution::Distribution(std::mt19937_64 &rng) : m_rng(rng) {}
double Distribution::tau_wait() const {
return std::exponential_distribution(1./m_tau)(m_rng);
}

28
times/base.h Normal file
View File

@ -0,0 +1,28 @@
//
// 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;}
virtual void draw_tau() = 0;
[[nodiscard]] double tau_wait() const;
private:
double m_tau{1.};
std::mt19937_64& m_rng;
};
#endif //RWSIM_TIMESBASE_H

10
times/delta.cpp Normal file
View File

@ -0,0 +1,10 @@
//
// Created by dominik on 8/12/24.
//
#include "delta.h"
DeltaDistribution::DeltaDistribution(const double tau, std::mt19937_64& rng) : Distribution(tau, rng) {}
DeltaDistribution::DeltaDistribution(std::mt19937_64& rng) : Distribution(rng) {}
void DeltaDistribution::draw_tau() {}

18
times/delta.h Normal file
View File

@ -0,0 +1,18 @@
//
// Created by dominik on 8/12/24.
//
#ifndef RWSIM_TIMESDELTA_H
#define RWSIM_TIMESDELTA_H
#include "base.h"
class DeltaDistribution final : public Distribution {
public:
DeltaDistribution(double, std::mt19937_64&);
explicit DeltaDistribution(std::mt19937_64 &rng);
void draw_tau() override;
};
#endif //RWSIM_TIMESDELTA_H