diff options
Diffstat (limited to 'rqmc.hpp')
| -rw-r--r-- | rqmc.hpp | 29 |
1 files changed, 28 insertions, 1 deletions
@@ -31,7 +31,29 @@ compose(Fct f, VA X) { return compose_t<Fct, VA>(f, X); }; -// +template <typename VA> +struct mean_t: public generator<double> +{ + mean_t(int n, VA X): n(n), X(X) {}; + double operator()(){ + double sum = 0; + for(int i=0; i<n; i++){ + sum+=X(); + } + return sum/n; + } + private : + int n; VA X; + }; + +template <typename VA> +inline mean_t<VA> +mean(int n, VA X){ + return mean_t<VA>(n, X); +}; + + +//Les classes de monte-Carlo template <typename L> std::vector<double> monte_carlo(int n, L X) @@ -55,6 +77,9 @@ std::vector<double> monte_carlo(int n, Fct f, L X) return monte_carlo(n, compose(f, X)); }; +//Les classes de quasi-mean + + struct quasi_gaussian : public var_alea<std::vector<double> > { quasi_gaussian (int d, double mean = 0, double std =1) @@ -72,6 +97,8 @@ struct quasi_gaussian : public var_alea<std::vector<double> > sobol sob; }; + + struct gaussian_d : public var_alea<std::vector<double> > { gaussian_d(int d, double mean = 0, double std =1) |
