Added a Gaussian noise generator

This commit is contained in:
Christian Risi
2024-12-01 12:10:19 +00:00
parent 0c82f284e8
commit 44d6d9a84f
8 changed files with 83 additions and 5 deletions

View File

@@ -0,0 +1,32 @@
#include <random>
#include <chrono>
#include <GaussianRNG.h>
GaussianRNG::
GaussianRNG(
float mean,
float std_dev,
unsigned seed
) {
this->seed = seed;
this->generator = std::default_random_engine(this->seed);
this->distribution = std::normal_distribution<float>(mean, std_dev);
}
GaussianRNG
::GaussianRNG(
float mean,
float std_dev
) {
this->seed = std::chrono::system_clock::now().time_since_epoch().count();
this->generator = std::default_random_engine(this->seed);
this->distribution = std::normal_distribution<float>(mean, std_dev);
}
float GaussianRNG
::generate() {
return distribution(generator);
}

View File

@@ -0,0 +1,17 @@
#include <random>
#pragma once
class GaussianRNG {
private:
unsigned seed;
std::default_random_engine generator;
std::normal_distribution<float> distribution;
public:
GaussianRNG(float mean, float std_dev, unsigned seed);
GaussianRNG(float mean, float std_dev);
float generate();
};

View File

@@ -0,0 +1 @@
#include <GaussianRNG.h>