IAP GITLAB

Skip to content
Commits on Source (2)
......@@ -3,13 +3,13 @@
PROJECT_NAME = RandomIterator
PROJECT_NUMBER =
STRIP_FROM_PATH = /home/augalves/Development/random_iterator
STRIP_FROM_PATH = /home/augalves/Development/Release/RandomIterator/random_iterator
INPUT = /home/augalves/Development/random_iterator/random_iterator /home/augalves/Development/random_iterator/examples
INPUT = /home/augalves/Development/Release/RandomIterator/random_iterator/random_iterator /home/augalves/Development/Release/RandomIterator/random_iterator/examples
USE_MDFILE_AS_MAINPAGE = /home/augalves/Development/random_iterator/README.md
OUTPUT_DIRECTORY = /home/augalves/Development/random_iterator_ws/documentation/reference
USE_MDFILE_AS_MAINPAGE = /home/augalves/Development/Release/RandomIterator/random_iterator/README.md
OUTPUT_DIRECTORY = /home/augalves/Development/Release/RandomIterator/random_iterator_proj/documentation/reference
VERBATIM_HEADERS = NO
GENERATE_LATEX = NO
RECURSIVE = YES
......
......@@ -46,39 +46,10 @@ using namespace matplot;
template<typename Generator>
void plot_normal(char* name, uint64_t seed){
auto f = figure(false);
auto tile = f->nexttile();
Generator RNG(default_seed);
std::normal_distribution<double> ndist(0.0, 1.0);
auto nrng_stream = random_iterator::make_stream( ndist, RNG, 1);
std::vector<double> data_normal_distribution;
void plot_normal(char* name, uint64_t seed);
for(size_t i =0; i<NSAMPLES; ++i){
data_normal_distribution.push_back(nrng_stream[i]);
}
auto data_normal_histogram = hist(data_normal_distribution, histogram::normalization::pdf);
title(name);
hold(on);
double mean = 0.0;
double sigma = 1.0;
auto fnormal = [&](double y) {
return exp(-pow((y - mean), 2.) / (2. * pow(sigma, 2.))) /
(sigma * sqrt(2. * pi));
};
fplot(fnormal, std::array<double, 2>{-5, 15})->line_width(2.0);
f->show();
}
template<typename Generator>
void plot_exponential(char* name, uint64_t seed);
......@@ -94,6 +65,14 @@ int main(int argv, char** argc)
plot_normal<random_iterator::threefry>("threefry", default_seed);
//show();
plot_exponential<random_iterator::philox>("philox", default_seed);
plot_exponential<random_iterator::squares3_64>("squares3_{64}", default_seed);
plot_exponential<random_iterator::squares4_64>("squares4_{64}", default_seed);
plot_exponential<random_iterator::squares3_128>("squares3_{128}", default_seed);
plot_exponential<random_iterator::squares4_128>("squares4_{128}", default_seed);
plot_exponential<random_iterator::ars>("ars", default_seed);
plot_exponential<random_iterator::threefry>("threefry", default_seed);
show();
/*
std::uniform_real_distribution<double> udist(0.0, 1.0);
std::normal_distribution<double> ndist(0.0, 1.0);
......@@ -127,3 +106,72 @@ int main(int argv, char** argc)
return 0;
}
template<typename Generator>
void plot_normal(char* name, uint64_t seed){
auto f = figure(false);
auto tile = f->nexttile();
Generator RNG(default_seed);
std::normal_distribution<double> ndist(0.0, 1.0);
auto nrng_stream = random_iterator::make_stream( ndist, RNG, 1);
std::vector<double> data_normal_distribution;
for(size_t i =0; i<NSAMPLES; ++i){
data_normal_distribution.push_back(nrng_stream[i]);
}
auto data_normal_histogram = hist(data_normal_distribution, histogram::normalization::pdf);
title(name);
hold(on);
double mean = 0.0;
double sigma = 1.0;
auto fnormal = [&](double y) {
return exp(-pow((y - mean), 2.) / (2. * pow(sigma, 2.))) /
(sigma * sqrt(2. * pi));
};
fplot(fnormal, std::array<double, 2>{-5, 15})->line_width(2.0);
f->draw();
}
template<typename Generator>
void plot_exponential(char* name, uint64_t seed){
auto f = figure(false);
auto tile = f->nexttile();
Generator RNG(default_seed);
std::exponential_distribution<double> ndist(1.0);
auto nrng_stream = random_iterator::make_stream( ndist, RNG, 1);
std::vector<double> data_exponential_distribution;
for(size_t i =0; i<NSAMPLES; ++i){
data_exponential_distribution.push_back(nrng_stream[i]);
}
auto data_exponential_histogram = hist(data_exponential_distribution, histogram::normalization::pdf);
title(name);
hold(on);
double tau = 1.0;
auto fexponential = [&](double y) {
return tau*exp(-tau*y);
};
fplot(fexponential, std::array<double, 2>{0, 15})->line_width(2.0);
f->draw();
}