Skip to content
Snippets Groups Projects
Commit 7edff769 authored by erwan's avatar erwan
Browse files

New: add a --seed option

parent 66a23e9e
No related branches found
No related tags found
No related merge requests found
(* Time-stamp: <modified the 14/03/2019 (at 16:15) by Erwan Jahier> *)
(* Time-stamp: <modified the 14/03/2019 (at 16:54) by Erwan Jahier> *)
type t = {
......@@ -7,6 +7,7 @@ type t = {
mutable verbose: int;
mutable demon: Demon.t;
mutable rif: bool;
mutable seed: int;
mutable ifi: bool;
mutable gen_lutin: bool;
......@@ -32,6 +33,7 @@ let (make_args : unit -> t) =
verbose = 0;
demon = Demon.Distributed;
rif = false;
seed = (Random.self_init (); Random.int 1073741823);
ifi = false;
gen_lutin = false;
_args = [];
......@@ -109,6 +111,10 @@ let (mkoptab : t -> unit) =
(Arg.Unit(fun () -> args.rif <- true))
["Follows RIF conventions"];
mkopt opt ["--seed";"-seed"]
(Arg.Int(fun i -> args.seed <- i))
["Set the pseudo-random generator seed of build-in demons"];
mkopt opt ~hide:true ["--gen-lutin-demon";"-gld"]
(Arg.Unit(fun () -> args.gen_lutin <- true))
["Generate Lutin demons and exit"];
......
(* Time-stamp: <modified the 14/03/2019 (at 16:06) by Erwan Jahier> *)
(* Time-stamp: <modified the 14/03/2019 (at 16:57) by Erwan Jahier> *)
(* XXX Je pourrais utiliser Lwt pour rendre step non-bloquant, ce qui
permettrait d'accelerer la simu sur les machines qui ont plusieurs
......@@ -158,8 +158,8 @@ let () =
let nstr = String.concat "," nstrl in
try
Algo.verbose_level := SasArg.args.verbose;
Random.self_init();
if !Algo.verbose_level > 0 then Printf.printf "nodes: %s\nedges:\n" nstr;
Random.init SasArg.args.seed;
if !Algo.verbose_level > 0 then Printf.eprintf "nodes: %s\nedges:\n" nstr;
let e = Env.init () in
let pl = List.map (Process.make (args.demon=Custom)) nl in
let neighors = List.map get_neighors pl in
......@@ -179,6 +179,8 @@ let () =
exit 0);
let n = SasArg.args.length in
if SasArg.args.rif then (
if SasArg.args.demon <> Demon.Custom then
Printf.printf "#seed %i\n" SasArg.args.seed;
Printf.printf "#inputs %s\n"
(if SasArg.args.demon = Demon.Custom then (
let f p = List.map
......@@ -189,6 +191,11 @@ let () =
) else "");
Printf.printf "#outputs %s\n" (StringOf.env_rif_decl pl);
flush stdout
) else (
if SasArg.args.demon <> Demon.Custom then (
Printf.printf "The pseudo-random engine is used with seed %i\n" SasArg.args.seed;
flush stdout
);
);
if SasArg.args.ifi then (
List.iter
......
# Time-stamp: <modified the 14/03/2019 (at 13:40) by Erwan Jahier>
# Time-stamp: <modified the 14/03/2019 (at 16:46) by Erwan Jahier>
test: test0 lurette0
test0: cmxs
$(sasa) -l 200 fig5.1-noinit.dot -sd
$(sasa) -rif -l 200 fig5.1-noinit.dot -sd
cmxs:root.cmxs p.cmxs
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment