aboutsummaryrefslogtreecommitdiffstats
path: root/main.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'main.cpp')
-rw-r--r--main.cpp28
1 files changed, 18 insertions, 10 deletions
diff --git a/main.cpp b/main.cpp
index 88617c4..8692967 100644
--- a/main.cpp
+++ b/main.cpp
@@ -1,16 +1,16 @@
#include <iostream>
#include <gsl/gsl_rng.h>
#include <vector>
-//#include "rtnorm.hpp"
#include <gsl/gsl_cdf.h>
#include <gsl/gsl_math.h>
#include "stratified_sampling.hpp"
#include <cmath>
#include <algorithm>
+using namespace std;
//--génération quantiles--
-std::vector<double> quantile_norm(int n, double sigma){
- std::vector<double> q(n);
+vector<double> quantile_norm(int n, double sigma){
+ vector<double> q(n);
for (int i=0; i<n; i++) {
q[i] = gsl_cdf_gaussian_Pinv ((double)(i+1)/n, sigma);
}
@@ -21,15 +21,23 @@ int main()
{
//--- GSL random init ---
gsl_rng_env_setup();
- std::vector<double> q;
- q = quantile_norm(10, 1);
+ vector<double> q = quantile_norm(10, 1);
vector<double> p(10, 0.1);
- vector<gaussian_truncated> gen;
- gen.push_back(gaussian_truncated(GSL_NEGINF,q[0]));
+ vector<gaussian_truncated> rvar;
+ rvar.push_back(gaussian_truncated(GSL_NEGINF, q[0],0,1,0));
for (int i=1; i<10; i++){
- gen.push_back(gaussian_truncated(q[i-1],q[i]));
+ rvar.push_back(gaussian_truncated(q[i-1], q[i],0,1,i));
+ }
+ stratified_sampling<gaussian_truncated> S(p,rvar);
+ S.update(100);
+ S.draw();
+ for(int i=0;i<10;i++){
+ cout<<S.get_mean()[i]<<endl;
+ }
+ S.update(500);
+ S.draw();
+ for(int i=0;i<10;i++){
+ cout<<S.get_mean()[i]<<endl;
}
- stratified_sampling<gaussian_truncated> S(p, gen);
- //S.update(1000);
return 0;
}