first commit
This commit is contained in:
13
times/base.cpp
Normal file
13
times/base.cpp
Normal 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
28
times/base.h
Normal 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
10
times/delta.cpp
Normal 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
18
times/delta.h
Normal 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
|
Reference in New Issue
Block a user