aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--Makefile5
-rw-r--r--src/projet.cpp18
2 files changed, 12 insertions, 11 deletions
diff --git a/Makefile b/Makefile
index de07660..040bfbf 100644
--- a/Makefile
+++ b/Makefile
@@ -12,11 +12,14 @@ VPATH = src:doc
all: rapport.pdf
-rapport.pdf: rapport.tex table.tex
+rapport.pdf: rapport.tex table.tex table2.tex
latexmk -cd -lualatex $<
table.tex: projet
./projet
+
+table2.tex: projet
+ ./projet
projet: projet.o stratified_sampling.o mt19937.o var_alea.o opti.o rqmc.o p_adic.o option.o sobolseq.o
$(CXX) $^ -o $@ $(GSL_FLAGS) $(NLOPT_FLAGS)
diff --git a/src/projet.cpp b/src/projet.cpp
index 85f56ab..fb86414 100644
--- a/src/projet.cpp
+++ b/src/projet.cpp
@@ -107,7 +107,6 @@ vector <vector<double> > exemple2_stratified (int d){
r[1] = S.estimator().first;
r[2] = S.estimator().second;
data[i] = r;
- for(int j=0; j<3; j++){cout<<data[i][j]<<endl;};
}
return data;
}
@@ -125,9 +124,6 @@ vector< vector<double> > exemple2_rqmc(int d) {
asian_option A(r, T, S0, V, K[i], true);
data[i] = monte_carlo(I, quasi_mean<asian_option, sobol> (N, d, A));
}
- for(int i =0; i<3; i++){
- std::cout<<data[i][0]<<std::endl;
- }
return data;
};
@@ -151,15 +147,17 @@ int make_table2(vector< vector<double> > data1, vector< vector<double> > data2,
fs<<R"(\begin{tabular}{|r|r|rr|rr|c|})"<<std::endl;
fs<<R"(\hline)"<<endl;
fs<<"d"<<" & "<<"K"<<" & "<<R"($\mu_{strat}$)"<<" & "<<R"($\mu_{rqmc}$)"<<" & "<<R"($\textrm{IC}_{strat}$)"<<" & "<<R"($\textrm{IC}_{rqmc}$)"<<" & "<< R"($\textrm{IC}_{strat}/\textrm{IC}_{rqmc}$)"<<R"(\\ \hline)"<<std::endl;
- fs.precision(2);
+ fs.precision(3);
int N = 1000000;
for (int i=0; i< 3; i++) {
- double ic_strat16 = 1.95996*sqrt(data1[i][2]/(double) N);
- fs<<"16"<<" & "<< (int) (data1[i][0]) << scientific <<"$"<< data1[i][1] <<" & "<<data2[i][0]<<" & "<<ic_srat16<<" & "<<data2[i][2]/2<<" & "<<fixed<<ic_strat16/(data2[i][2]/2)<<std::endl;
+ double ic_strat = 1.95996*sqrt(data1[i][2]/(double) N);
+ fs<<"16"<<" & "<< (int) (data1[i][0]) <<"&"<< data1[i][1] <<" & "<<data2[i][0]<<" & "<< scientific <<ic_strat<<" & "<<data2[i][2]/2<<" & "<<fixed<<ic_strat/(data2[i][2]/2)<<R"(\\)"<<std::endl;
+ fs<<R"(\hline)"<<endl;
}
for (int i=0; i< 3; i++) {
- double ic_strat64 = 1.95996*sqrt(data3[i][2]/(double) N);
- fs<<"64"<<" & "<< (int) (data3[i][0]) << scientific <<"$"<< data3[i][1] <<" & "<<data4[i][0]<<" & "<<ic_srat64<<" & "<<data4[i][2]/2<<" & "<<fixed<<ic_strat64/(data4[i][2]/2)<<R"(\\ \hline)"<<std::endl;
+ double ic_strat = 1.95996*sqrt(data3[i][2]/(double) N);
+ fs<<"64"<<" & "<< (int) (data3[i][0]) <<"&"<< data3[i][1] <<" & "<<data4[i][0]<<" & "<< scientific <<ic_strat<<" & "<<data4[i][2]/2<<" & "<<fixed<<ic_strat/(data4[i][2]/2)<<R"(\\)"<<std::endl;
+ fs<<R"(\hline)"<<endl;
}
fs<<R"(\end{tabular})"<<std::endl;
fs.close();
@@ -177,7 +175,7 @@ int main()
//~ make_table1(data1, data2);
vector< vector<double> > data1 = exemple2_stratified(16);
- vector< vector<double> > data2 = exemple2_rqmc(16);
+ vector< vector<double> > data2 = exemple2_rqmc(16);
vector< vector<double> > data3 = exemple2_stratified(64);
vector< vector<double> > data4 = exemple2_rqmc(64);
make_table2(data1, data2, data3, data4);