diff --git a/experiments/SIAM/xp_2_bench_time/xp_a_get_state.py b/experiments/SIAM/xp_2_bench_time/xp_a_get_state.py
index 9fd3f09d0b8baa753d6b7f3a9f40f399cd2d7ddf..deb2e920093ccbed2d51fdff06f12970c10072cc 100644
--- a/experiments/SIAM/xp_2_bench_time/xp_a_get_state.py
+++ b/experiments/SIAM/xp_2_bench_time/xp_a_get_state.py
@@ -12,8 +12,9 @@ from get_algs_params import get_alg_params, get_nb_algs
 parser=argparse.ArgumentParser()
 parser.add_argument('--id', help='setup id', type=str, default="SIAM")
 parser.add_argument('--erase', help='restart xp', action="store_true")
-parser.add_argument('--precision', help='stop when gap reaches 1e-precision', default=8, type=float)
+parser.add_argument('--precision', help='stop when gap reaches 1e-precision', default=8, type=int)
 parser.add_argument('--exact', action="store_true")
+parser.add_argument('--noverbose', help='disable printing if true', action="store_true")
 args=parser.parse_args()
 
 setup = Setup(args.id)
@@ -27,8 +28,9 @@ Path(folder).mkdir(parents=True, exist_ok=True)
 
 time_file_name = f"{folder}/setup{args.id}_a_state.npz"
 
+if not args.noverbose:
+   print(f"Starting \"get seed\" with id {args.id}, precision 1e-{args.precision}")
 
-print(f"Starting \"get seed\" with id {args.id}, precision 1e-{args.precision}")
 try:
    if args.erase:
       raise FileNotFoundError
diff --git a/experiments/SIAM/xp_2_bench_time/xp_b_get_budget.py b/experiments/SIAM/xp_2_bench_time/xp_b_get_budget.py
index 8fa0f865496b671f3c639ac7c2050d351d60152a..5e0c196b54e1a65c22dbce3fef593868d088bf70 100755
--- a/experiments/SIAM/xp_2_bench_time/xp_b_get_budget.py
+++ b/experiments/SIAM/xp_2_bench_time/xp_b_get_budget.py
@@ -19,6 +19,7 @@ parser.add_argument('--id', help='setup id', type=str, default="SIAM")
 parser.add_argument('--erase', help='restart xp', action="store_true")
 parser.add_argument('--precision', help='stop when gap reaches 1e-precision', default=8)
 parser.add_argument('--exact', action="store_true")
+parser.add_argument('--noverbose', help='disable printing if true', action="store_true")
 args=parser.parse_args()
 
 
@@ -69,12 +70,14 @@ except FileNotFoundError:
 
 nb_xp = setup.nb_dic * setup.nb_sequence * setup.nb_ratio_lbd * setup.n_rep
 t = 0
-print(f"Starting \"get budget\" with id {args.id}, precision 1e-{args.precision}")
+if not args.noverbose:
+   print(f"Starting \"get budget\" with id {args.id}, precision 1e-{args.precision}")
 for i_dic in range(setup.nb_dic):
    for i_seq in range(setup.nb_sequence):
       for i_ratio, ratio in enumerate(setup.list_ratio_lbd):
          for rep in range(setup.n_rep):
-            print(f"xp budget {t+1} / {nb_xp}")
+            if not args.noverbose:
+               print(f"xp budget {t+1} / {nb_xp}")
 
             if not np.isnan(mat_times[i_dic, i_seq, i_ratio, rep]):
                t += 1
diff --git a/experiments/SIAM/xp_2_bench_time/xp_c_results_time.py b/experiments/SIAM/xp_2_bench_time/xp_c_results_time.py
index 1c58aca6f151f0f0b4ae0d1540d3a071e9f4f5bb..30ee78db7bad765752b262ba83adeaec385bdeaf 100644
--- a/experiments/SIAM/xp_2_bench_time/xp_c_results_time.py
+++ b/experiments/SIAM/xp_2_bench_time/xp_c_results_time.py
@@ -20,6 +20,7 @@ parser.add_argument('--id', help='setup id', type=str, default="SIAM")
 parser.add_argument('--erase', help='restart xp', action="store_true")
 parser.add_argument('--precision', help='stop when gap reaches 1e-precision', default=8)
 parser.add_argument('--exact', action="store_true")
+parser.add_argument('--noverbose', help='disable printing if true', action="store_true")
 args=parser.parse_args()
 
 
@@ -70,7 +71,8 @@ except FileNotFoundError:
 
 nb_xp = setup.nb_dic * setup.nb_sequence * setup.nb_ratio_lbd * setup.n_rep
 t = 0
-print(f"Starting \"xp time\" with id {args.id}, precision 1e-{args.precision}")
+if not args.noverbose:
+   print(f"Starting \"xp time\" with id {args.id}, precision 1e-{args.precision}")
 for i_dic in range(setup.nb_dic):
    for i_seq in range(setup.nb_sequence):
       for i_ratio, ratio in enumerate(setup.list_ratio_lbd):
@@ -81,7 +83,8 @@ for i_dic in range(setup.nb_dic):
             continue
 
          for rep in range(setup.n_rep):
-            print(f"xp time {t+1} / {nb_xp}")
+            if not args.noverbose:
+               print(f"xp time {t+1} / {nb_xp}")
 
             # print(i_dic, i_seq, i_ratio, rep)
             # i_dic, i_seq, i_ratio, rep = 1, 0, 2, 17
diff --git a/experiments/SIAM/xp_2_bench_time/xp_d_viz.py b/experiments/SIAM/xp_2_bench_time/xp_d_viz.py
new file mode 100644
index 0000000000000000000000000000000000000000..63b14fe095a06927b8cac0204bcb3839138d85bd
--- /dev/null
+++ b/experiments/SIAM/xp_2_bench_time/xp_d_viz.py
@@ -0,0 +1,132 @@
+# -*- coding: utf-8 -*-
+import argparse
+from pathlib import Path
+
+import numpy as np
+
+
+parser=argparse.ArgumentParser()
+parser.add_argument('--id', help='setup id', type=str, default="SIAM")
+parser.add_argument('--precision', help='stop when gap reaches 1e-precision', default=8)
+parser.add_argument('--exact', action="store_true")
+# parser.add_argument('--it', help='show it results', action="store_true")
+parser.add_argument('--ilbd', help='save figure', type=int, default=0)
+parser.add_argument('--noshow', help='show plots', action="store_true")
+parser.add_argument('--save', help='save figure', action="store_true")
+parser.add_argument('--noverbose', help='disable printing if true', action="store_true")
+args=parser.parse_args()
+
+import matplotlib
+if args.noshow:
+   matplotlib.use('PS')
+else:
+   matplotlib.use("TkAgg")
+import matplotlib.pyplot as plt
+
+matplotlib.rcParams['text.usetex'] = True
+
+
+
+from process_data import process
+from get_algs_params import get_alg_params, get_nb_algs
+from slopescreening.utils import gamma_sequence_generator
+from experiments.SIAM.setup import Setup
+
+
+fs = 20
+
+# -------------------------
+#       Load  results
+# -------------------------
+
+folder = f'results/1e-{args.precision}'
+folder += 'exact/' if args.exact else 'gersh/'
+
+setup = Setup(args.id)
+_, list_names = get_alg_params(setup, np.zeros(5), args.exact)
+dic_process = process(folder, False, setup)
+
+vec_tau            = dic_process["vec_tau"]
+results_rho        = dic_process["results_rho"]
+# sparsity_level     = dic_process["sparsity_level"]
+# results_average_it = dic_process["results_average_it"]
+# results_std_it     = dic_process["results_std_it"]
+
+
+# -------------------------
+#       Plot  results
+# -------------------------
+
+f, ax = plt.subplots(setup.nb_sequence, setup.nb_dic, figsize=(16, 13.),
+   sharex=True, sharey=True,
+   gridspec_kw = {'wspace':.05, 'hspace':.05}
+)
+# f.suptitle(f"{setup.list_dic[i_dic]} dictionary", fontsize=14)
+
+list_algnames = ["PG-no", "PG-p=q", "PG-all", 'PG-Bao']
+list_dicname  = ["Gaussian", "Uniform", "Toeplitz"]
+# args.ilbd = 1
+
+if not args.noverbose:
+   print("ploting time fig for")
+   print(f" - {list_dicname} dictionaries")
+   print(f" - lbd / lbd_max = {setup.list_ratio_lbd[args.ilbd]}")
+
+for i_dic in range(setup.nb_dic):   
+   for i_seq in range(setup.nb_sequence):
+
+      list_colors = ["tab:blue", "tab:orange", "tab:green", "tab:purple"]
+      for i_alg in [0, 1, 3, 2]:#range(len(list_names)):
+         ax[i_seq, i_dic].plot(
+            vec_tau, 
+            100. * results_rho[i_alg, i_dic, i_seq, args.ilbd],
+            linewidth=3.,
+            label=list_algnames[i_alg],
+            color=list_colors[i_alg]
+         )
+
+
+      ax[i_seq, i_dic].set_xscale('log')
+
+      ax[i_seq, i_dic].set_xlim([5e-15, 5e-1])
+      ax[i_seq, i_dic].set_ylim([-2, 101])
+      ax[i_seq, i_dic].grid()
+
+      if i_seq == 0:
+         ax[i_seq, i_dic].set_title(
+            f"{list_dicname[i_dic]}",
+            fontsize=fs+2,
+         )
+            
+      if i_dic == 2 and i_seq == 2:
+         ax[i_seq, i_dic].legend()
+
+      if i_seq == setup.nb_sequence-1:
+         ax[i_seq, i_dic].set_xlabel("$\delta$ (Dual gap)", 
+            # fontsize=14,
+         )
+
+      if i_dic == 0:
+         ax[i_seq, i_dic].set_ylabel(
+            r"$\rho(\delta)$",
+            fontsize=fs+4,
+         )
+
+         for tick in ax[i_seq, i_dic].yaxis.get_major_ticks():
+            tick.label.set_fontsize(16) 
+
+      if i_seq == 2:
+         for tick in ax[i_seq, i_dic].xaxis.get_major_ticks():
+            tick.label.set_fontsize(16)
+
+
+
+
+if args.save:
+   Path("figs").mkdir(parents=True, exist_ok=True)
+   fig_name = f"figs/setup{args.id}_precision{args.precision}_exact{args.exact}_time"
+
+   plt.savefig(fig_name + ".eps", bbox_inches='tight')
+
+if not args.noshow:
+   plt.show()
diff --git a/experiments/SIAM/xp_2_bench_time/xp_d_viz_paper.py b/experiments/SIAM/xp_2_bench_time/xp_d_viz_SIAM.py
similarity index 93%
rename from experiments/SIAM/xp_2_bench_time/xp_d_viz_paper.py
rename to experiments/SIAM/xp_2_bench_time/xp_d_viz_SIAM.py
index 53b3a1e1680293003d3a1e0f9a589279c972a94b..8dd7cc704e6d7978b569c0c2bda4df860ea804b5 100644
--- a/experiments/SIAM/xp_2_bench_time/xp_d_viz_paper.py
+++ b/experiments/SIAM/xp_2_bench_time/xp_d_viz_SIAM.py
@@ -13,19 +13,25 @@ parser.add_argument('--exact', action="store_true")
 parser.add_argument('--ilbd', help='save figure', type=int, default=1)
 parser.add_argument('--noshow', help='show plots', action="store_true")
 parser.add_argument('--save', help='save figure', action="store_true")
+parser.add_argument('--noverbose', help='disable printing if true', action="store_true")
 args=parser.parse_args()
 
+if args.id != "SIAM":
+   raise Exception("this file has been created to reproduce the SIAM figures. Use the SIAM id instead")
+
 import matplotlib
 if args.noshow:
    matplotlib.use('PS')
 else:
    matplotlib.use("TkAgg")
+matplotlib.rcParams['text.usetex'] = True
+
 import matplotlib.pyplot as plt
 import matplotlib.font_manager as font_manager
 
 from process_data import process
 from get_algs_params import get_alg_params, get_nb_algs
-from src.utils import gamma_sequence_generator
+from slopescreening.utils import gamma_sequence_generator
 from experiments.SIAM.setup import Setup
 
 
diff --git a/run_tests.sh b/run_tests.sh
index 73ed2803be86c075a42379d35c4a4fa95938f0b4..ce96044418244b6e36b71dce0436307fdf9a778c 100755
--- a/run_tests.sh
+++ b/run_tests.sh
@@ -2,9 +2,19 @@ echo "Running unit tests..."
 python -m unittest
 
 echo ""
-echo "Running SIAM xp test 1"
+echo "Running SIAM xp 1 test"
 cd experiments/SIAM/xp_1_balls
 python xp_a_accuracy_sol.py --id Test --noverbose
 python xp_b_screening.py --id Test --noverbose
-python xp_c_viz_fig1.py  --id Test --noverbose
-python xp_c_viz_fig2.py  --id Test --noverbose
\ No newline at end of file
+python xp_c_viz.py  --id Test --noverbose --noshow
+cd ..
+
+echo ""
+echo "Running SIAM xp 2 test"
+cd xp_2_bench_time
+python xp_a_get_state.py --id Test --precision 4 --noverbose
+python xp_b_get_budget.py --id Test --precision 4 --noverbose
+python xp_c_results_time.py --id Test --precision 4 --noverbose
+python xp_d_viz.py --id Test --precision 4 --noverbose --noshow
+cd ../../../
+echo "End of testing"
\ No newline at end of file