From ffd3f7d7bcbaefc0910b5e9c7f1ad08c59bf81d6 Mon Sep 17 00:00:00 2001 From: Erwan Jahier <erwan.jahier@univ-grenoble-alpes.fr> Date: Tue, 19 Apr 2022 15:28:09 +0200 Subject: [PATCH] fix: -is/-gis avoid a division by 0 when used with a #simu < 100 --- lib/sasacore/worstInit.ml | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/lib/sasacore/worstInit.ml b/lib/sasacore/worstInit.ml index 9021b74a..93ee105a 100644 --- a/lib/sasacore/worstInit.ml +++ b/lib/sasacore/worstInit.ml @@ -1,4 +1,4 @@ -(* Time-stamp: <modified the 14/04/2022 (at 17:20) by Erwan Jahier> *) +(* Time-stamp: <modified the 19/04/2022 (at 15:20) by Erwan Jahier> *) open Register @@ -221,7 +221,8 @@ let (fchc : out_channel -> ('v SimuState.t -> int) -> 'v SimuState.t -> int map_local_fold ~f: (fun p -> cost p, p) ~fold:(fun (cpt,nl) (c,p) -> - let n_percent_done = cpt / (dmax / 100) in + assert(dmax <> 0); + let n_percent_done = if dmax < 100 then 1 else cpt / (dmax / 100) in if n_percent_done <> !percent_done then ( percent_done := n_percent_done; Printf.printf "%d%% of the %d simulations have been tryied so far...\r%!" @@ -321,7 +322,7 @@ let (global : out_channel -> ('v SimuState.t -> int) -> 'v SimuState.t -> int else ss_worst, worst in - let n_percent_done = cpt / (dmax / 100) in + let n_percent_done = if dmax < 100 then 1 else cpt / (dmax / 100) in if n_percent_done <> !percent_done then ( percent_done := n_percent_done; Printf.printf "%d%% of the %d simulations have been tryied so far...\r%!" -- GitLab