From 355e4567e68a76356714e2e58a42dcd78533cf6c Mon Sep 17 00:00:00 2001 From: Bertrand Date: Fri, 19 Feb 2016 14:36:20 +0000 Subject: un peu de nettoyage --- option.cpp | 38 ++++++++++++++++---------------------- 1 file changed, 16 insertions(+), 22 deletions(-) (limited to 'option.cpp') diff --git a/option.cpp b/option.cpp index 7fb5ce3..0e5a56c 100644 --- a/option.cpp +++ b/option.cpp @@ -1,6 +1,7 @@ #include #include #include "rqmc.hpp" +#include "p_adic.o" double frac_part(double x){ return x - floor(x); @@ -37,36 +38,24 @@ struct asian_option : public std::unary_function, double> -template -struct quasi_option : public generator +template +struct quasi_option : public generator { - quasi_option(int n, int d, Fct payoff) : n(n), d(d), payoff(payoff), U(0,1), s(d), seed(d) {}; + quasi_option(int n, int d, Fct payoff) : n(n), d(d), payoff(payoff), G(d) {}; - double operator()() { - std::vector X(d); + typename Fct::result_type operator()() { double sum =0; - for(int i=0; i seed; + quasi_gaussian G; }; int main(){ @@ -76,10 +65,15 @@ int main(){ int d =16; - typedef asian_option payoff_type; std::vector result(3); - result = monte_carlo(100, quasi_option (N, d, A)); + result = monte_carlo(100, quasi_option (N, d, A)); + for(int i =0; i<3; i++){ + std::cout< result2(3); + result = monte_carlo(100, quasi_option (N, d, A)); for(int i =0; i<3; i++){ std::cout<