Commit 1d39ea54 authored by erwan's avatar erwan
Browse files

Fix: the neigbors were sucessors instead of predecessors

parent a1c76eca
(* Time-stamp: <modified the 27/08/2021 (at 14:37) by Erwan Jahier> *)
(* Time-stamp: <modified the 31/08/2021 (at 15:43) by Erwan Jahier> *)
(** {1 The Algorithm programming Interface}
A SASA process is an instance of an algorithm defined via this
......@@ -116,12 +116,14 @@ val is_connected : unit -> bool
val links_number : unit -> int
val diameter : unit -> int
(** {3 Trees} *)
(** {3 Trees}
(** a tree is an a-cyclic and connected graph (directed or not) *)
a tree is an a-cyclic and connected graph (directed or not) *)
val is_tree : unit -> bool
(** an in-tree is a _directed_ tree where all nodes have at most one _predecessor_ *)
val is_in_tree : unit -> bool
(** an out-tree is a _directed_ tree where all nodes have at most one _successor_ *)
val is_out_tree : unit -> bool
......
......@@ -9,8 +9,9 @@ let (graph_to_adjency: Topology.t -> int array array) =
fun t->
let taille = List.length t.nodes in
let mat = Array.make_matrix (taille) (taille) 0 in
List.iter (fun n -> (List.iter (fun (_,m) -> mat.(pos n.Topology.id t.nodes).(pos m t.nodes) <- 1 )
(t.succ n.Topology.id) ) ) (t.nodes);
List.iter (fun n ->
(List.iter (fun (m) -> mat.(pos n.Topology.id t.nodes).(pos m t.nodes) <- 1 )
(t.succ n.Topology.id) ) ) (t.nodes);
mat
......
(* Time-stamp: <modified the 28/07/2021 (at 11:37) by Erwan Jahier> *)
(* Time-stamp: <modified the 27/08/2021 (at 15:10) by Erwan Jahier> *)
open Register
......@@ -13,7 +13,7 @@ let (update_env_with_init : 'v Env.t -> 'v Process.t list -> 'v Env.t) =
let (get_neighors: Topology.t -> Topology.node_id -> 'v -> 'v Register.neighbor list) =
fun g source_id init ->
let idl = g.succ source_id in
let idl = g.pred source_id in
List.map
(fun (w, neighbor_id) ->
let node = g.of_id neighbor_id in
......
(* Time-stamp: <modified the 27/08/2021 (at 14:30) by Erwan Jahier> *)
(* Time-stamp: <modified the 27/08/2021 (at 17:02) by Erwan Jahier> *)
open Graph
open Graph.Dot_ast
......@@ -13,8 +13,8 @@ type node = {
type t = {
nodes: node list;
succ: node_id -> (int * node_id) list;
pred: node_id -> node_id list;
pred: node_id -> (int * node_id) list;
succ: node_id -> node_id list;
of_id: node_id -> node;
directed:bool;
attributes: (string * string) list;
......@@ -23,15 +23,15 @@ type t = {
type node_info_t = (string, node) Hashtbl.t
let node_info:node_info_t = Hashtbl.create 100
type node_succ_t = (string, int * node_id) Hashtbl.t
let node_succ:node_succ_t = Hashtbl.create 100
type node_pred_t = (string, node_id) Hashtbl.t
type node_pred_t = (string, int * node_id) Hashtbl.t
let node_pred:node_pred_t = Hashtbl.create 100
type node_succ_t = (string, node_id) Hashtbl.t
let node_succ:node_succ_t = Hashtbl.create 100
let clean_tbl () =
Hashtbl.clear node_info;
Hashtbl.clear node_succ;
Hashtbl.clear node_pred
Hashtbl.clear node_pred;
Hashtbl.clear node_succ
let (of_id:Dot_ast.id -> string) =
function Ident str | Html str | Number str | String str -> str
......@@ -114,12 +114,12 @@ let (do_stmt: bool -> node list * attrs -> Dot_ast.stmt -> node list * attrs) =
if n1 = n2 then failwith
(Printf.sprintf
"Bad topology: %s can not ne a neighbor of itself!" n1);
let pn1 = Hashtbl.find_all node_succ n1 in
let pn2 = Hashtbl.find_all node_succ n2 in
if not (List.mem (weight,n2) pn1) then
Hashtbl.add node_succ n1 (weight,n2);
if not directed && not (List.mem (weight,n1) pn2) then
Hashtbl.add node_succ n2 (weight,n1);
let pn1 = Hashtbl.find_all node_pred n1 in
let pn2 = Hashtbl.find_all node_pred n2 in
if not (List.mem (weight,n1) pn2) then
Hashtbl.add node_pred n2 (weight,n1);
if not directed && not (List.mem (weight,n2) pn1) then
Hashtbl.add node_pred n1 (weight,n2);
n2
in
ignore (List.fold_left add_edge node nodes);
......@@ -141,10 +141,10 @@ let (read: string -> t) = fun f ->
List.fold_left (do_stmt dot_file.digraph) ([], []) dot_file.stmts
in
Hashtbl.iter
(fun pid (_, pid_succ) ->
Hashtbl.add node_pred pid_succ pid
(fun pid (_, pid_pred) ->
Hashtbl.add node_succ pid pid_pred
)
node_succ;
node_pred;
let succ str = Hashtbl.find_all node_succ str in
let pred str = Hashtbl.find_all node_pred str in
{
......@@ -167,8 +167,9 @@ let (to_adjacency: t -> bool array array) =
List.iteri (fun i n -> Hashtbl.add rank_node_tbl n.id i) t.nodes;
List.iteri
(fun i n ->
List.iter (fun (_,target) ->
m.(i).(rank_node target) <- true) (t.succ n.id)
List.iter
(fun (target) -> m.(i).(rank_node target) <- true)
(t.succ n.id)
)
t.nodes;
m
......@@ -214,12 +215,12 @@ let directed_is_cyclic : t -> bool =
fun g ->
assert (g.directed);
let t = Hashtbl.create (List.length g.nodes) in
let nodes = List.map (fun n -> n.id) g.nodes in
let nodes = List.map (fun n -> 0 (* fake weight *), n.id) g.nodes in
let color pid = match Hashtbl.find_opt t pid with
Some c -> c | None -> assert false
in
List.iter (fun n -> Hashtbl.add t n W) nodes;
let rec visit pid =
List.iter (fun (_, n) -> Hashtbl.add t n W) nodes;
let rec visit (_,pid) =
match color pid with
| G -> raise Cycle
| B -> ()
......@@ -238,7 +239,7 @@ let is_connected : t -> bool =
if Hashtbl.mem visited pid then acc else
(Hashtbl.add visited pid pid;
List.fold_left f (pid::acc)
(List.rev_append (List.map snd (g.succ pid)) (g.pred pid))
(List.rev_append (g.succ pid) (List.map snd (g.pred pid)) )
)
in
let accessible = f [] (List.hd g.nodes).id in
......@@ -252,19 +253,22 @@ let bfs : (t -> string -> bool * string list) =
Queue.add n q;
while not (Queue.is_empty q) do
let node = Queue.take q in
parent := List.fold_left (fun parents (_,suc) ->
if List.for_all (fun disc -> disc <> suc) !discovered
then (
Queue.add suc q;
discovered := (suc)::!discovered;
function a -> if a = suc then node else parents a
) else ((
if suc <> (parents node)
then
cyclic := true);
parents
)
) !parent (t.succ node)
parent :=
List.fold_left
(fun parents suc ->
if List.for_all (fun disc -> disc <> suc) !discovered
then (
Queue.add suc q;
discovered := (suc)::!discovered;
function a -> if a = suc then node else parents a
) else ((
if suc <> (parents node)
then
cyclic := true);
parents
))
!parent
(t.succ node)
done;
(!cyclic, !discovered)
......@@ -301,7 +305,7 @@ let (reply: t -> string -> string -> int) =
fun g p p_neighbor ->
let rec f i = function
| [] -> (-1) (* may happen in directed graphs *)
| (_w,x)::t -> if x=p then i else f (i+1) t
| x::t -> if x=p then i else f (i+1) t
in
f 0 (g.succ p_neighbor)
......@@ -309,7 +313,7 @@ let (reply_pred: t -> string -> string -> int) =
fun g p p_neighbor ->
let rec f i = function
| [] -> (-1) (* may happen in directed graphs *)
| x::t -> if x=p then i else f (i+1) t
| (_,x)::t -> if x=p then i else f (i+1) t
in
f 0 (g.pred p_neighbor)
......@@ -334,15 +338,15 @@ let is_out_tree g =
(* Donne les enfants d'un noeud dans un in-tree (liens partent de la racine) *)
let children_in g pid =
List.map snd (g.succ pid)
g.succ pid
(* Donne les enfants d'un noeud dans un out-tree (liens vers la racine) *)
let children_out g pid =
g.pred pid
List.map snd (g.pred pid)
(* Donne les enfants d'un noeud dans un in-out-tree *)
let children_in_out g pid =
let succ = List.map snd (g.succ pid) in
let succ = g.succ pid in
if is_root_pid pid then succ
else List.tl succ
(* pour tous les noeuds sauf la racine, le parent est la tête de succ
......@@ -351,16 +355,16 @@ let children_in_out g pid =
let parent_in g pid =
match g.pred pid with
| [] -> None
| id::_ -> Some id
| (_,id)::_ -> Some id
let parent_out g pid =
match g.succ pid with
| [] -> None
| (_,id)::_ -> Some (id)
| id::_ -> Some id
let parent_in_out g pid =
if is_root_pid pid then None
else Some (snd (List.hd (g.succ pid)))
else Some (List.hd (g.succ pid))
(* Le parent est le premier dans la liste succ pour un in-out-tree ou un rooted-tree *)
let get_parent = fun g pid ->
......
(* Time-stamp: <modified the 27/08/2021 (at 09:25) by Erwan Jahier> *)
(* Time-stamp: <modified the 27/08/2021 (at 15:35) by Erwan Jahier> *)
(** {1 Topology: internal representation of Graphs } *)
......@@ -12,8 +12,8 @@ type node = {
type t = {
nodes: node list; (** *)
succ: node_id -> (int * node_id) list; (** get neighbors, with weight *)
pred: node_id -> node_id list;
pred: node_id -> (int * node_id) list; (** get neighbors, with weight *)
succ: node_id -> node_id list;
of_id: node_id -> node; (** *)
directed:bool; (** true if the graph is directed *)
attributes: (string * string) list (** (name, value) list of graph attributes *)
......
......@@ -2,21 +2,23 @@
#outputs "p1_path0":int "p1_path1":int "p1_path2":int "p1_path3":int "p1_path4":int "p1_path5":int "p1_path6":int "p1_path7":int "p1_path8":int "p1_path9":int "p1_par":int "p2_path0":int "p2_path1":int "p2_path2":int "p2_path3":int "p2_path4":int "p2_path5":int "p2_path6":int "p2_path7":int "p2_path8":int "p2_path9":int "p2_par":int "p3_path0":int "p3_path1":int "p3_path2":int "p3_path3":int "p3_path4":int "p3_path5":int "p3_path6":int "p3_path7":int "p3_path8":int "p3_path9":int "p3_par":int "p4_path0":int "p4_path1":int "p4_path2":int "p4_path3":int "p4_path4":int "p4_path5":int "p4_path6":int "p4_path7":int "p4_path8":int "p4_path9":int "p4_par":int "p5_path0":int "p5_path1":int "p5_path2":int "p5_path3":int "p5_path4":int "p5_path5":int "p5_path6":int "p5_path7":int "p5_path8":int "p5_path9":int "p5_par":int "p6_path0":int "p6_path1":int "p6_path2":int "p6_path3":int "p6_path4":int "p6_path5":int "p6_path6":int "p6_path7":int "p6_path8":int "p6_path9":int "p6_par":int "p7_path0":int "p7_path1":int "p7_path2":int "p7_path3":int "p7_path4":int "p7_path5":int "p7_path6":int "p7_path7":int "p7_path8":int "p7_path9":int "p7_par":int "p8_path0":int "p8_path1":int "p8_path2":int "p8_path3":int "p8_path4":int "p8_path5":int "p8_path6":int "p8_path7":int "p8_path8":int "p8_path9":int "p8_par":int "p9_path0":int "p9_path1":int "p9_path2":int "p9_path3":int "p9_path4":int "p9_path5":int "p9_path6":int "p9_path7":int "p9_path8":int "p9_path9":int "p9_par":int "p10_path0":int "p10_path1":int "p10_path2":int "p10_path3":int "p10_path4":int "p10_path5":int "p10_path6":int "p10_path7":int "p10_path8":int "p10_path9":int "p10_par":int "Enab_p1_update_path":bool "Enab_p1_compute_parent":bool "Enab_p2_update_path":bool "Enab_p2_compute_parent":bool "Enab_p3_update_path":bool "Enab_p3_compute_parent":bool "Enab_p4_update_path":bool "Enab_p4_compute_parent":bool "Enab_p5_update_path":bool "Enab_p5_compute_parent":bool "Enab_p6_update_path":bool "Enab_p6_compute_parent":bool "Enab_p7_update_path":bool "Enab_p7_compute_parent":bool "Enab_p8_update_path":bool "Enab_p8_compute_parent":bool "Enab_p9_update_path":bool "Enab_p9_compute_parent":bool "Enab_p10_update_path":bool "Enab_p10_compute_parent":bool "p1_update_path":bool "p1_compute_parent":bool "p2_update_path":bool "p2_compute_parent":bool "p3_update_path":bool "p3_compute_parent":bool "p4_update_path":bool "p4_compute_parent":bool "p5_update_path":bool "p5_compute_parent":bool "p6_update_path":bool "p6_compute_parent":bool "p7_update_path":bool "p7_compute_parent":bool "p8_update_path":bool "p8_compute_parent":bool "p9_update_path":bool "p9_compute_parent":bool "p10_update_path":bool "p10_compute_parent":bool "legitimate":bool
-1 -1 -1 -1 -1 -1 -1 -1 -1 -1 0 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 3 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -10 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 0 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 0 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 0 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 1 t f t f f f t f t f t f t f t f t f t f t f t f f f t f t f t f t f t f t f t f f
-1 3 -1 -1 -1 -1 -1 -1 -1 -1 0 -1 0 -1 -1 -1 -1 -1 -1 -1 -1 3 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -10 -1 1 -1 -1 -1 -1 -1 -1 -1 -1 0 -1 0 -1 -1 -1 -1 -1 -1 -1 -1 1 -1 0 -1 -1 -1 -1 -1 -1 -1 -1 0 -1 1 -1 -1 -1 -1 -1 -1 -1 -1 1 -1 0 -1 -1 -1 -1 -1 -1 -1 -1 0 -1 0 -1 -1 -1 -1 -1 -1 -1 -1 1 -1 0 -1 -1 -1 -1 -1 -1 -1 -1 1 t f t f f f t f t f f t t f t f t f t f t f t f f f t f t f f t t f t f t f t f f
-1 0 3 -1 -1 -1 -1 -1 -1 -1 0 -1 0 0 -1 -1 -1 -1 -1 -1 -1 3 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -10 -1 0 1 -1 -1 -1 -1 -1 -1 -1 0 -1 0 0 -1 -1 -1 -1 -1 -1 -1 1 -1 0 -1 -1 -1 -1 -1 -1 -1 -1 2 -1 0 1 -1 -1 -1 -1 -1 -1 -1 1 -1 0 1 -1 -1 -1 -1 -1 -1 -1 0 -1 0 0 -1 -1 -1 -1 -1 -1 -1 1 -1 0 0 -1 -1 -1 -1 -1 -1 -1 1 t f t f f f t f t f f f f f t f t f f t t f t f f f t f t f f f f f t f t f f t f
-1 0 0 3 -1 -1 -1 -1 -1 -1 0 -1 0 0 0 -1 -1 -1 -1 -1 -1 3 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -10 -1 0 0 1 -1 -1 -1 -1 -1 -1 0 -1 0 0 0 -1 -1 -1 -1 -1 -1 1 -1 0 -1 -1 -1 -1 -1 -1 -1 -1 2 -1 0 1 -1 -1 -1 -1 -1 -1 -1 1 -1 0 0 1 -1 -1 -1 -1 -1 -1 0 -1 0 0 1 -1 -1 -1 -1 -1 -1 1 -1 0 0 -1 -1 -1 -1 -1 -1 -1 0 t f t f f f t f t f f f t f t f f t f f t f t f f f t f t f f f t f t f f t f f f
-1 0 0 0 3 -1 -1 -1 -1 -1 0 -1 0 0 0 0 -1 -1 -1 -1 -1 3 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -10 -1 0 0 0 1 -1 -1 -1 -1 -1 0 -1 0 0 0 0 -1 -1 -1 -1 -1 1 -1 0 -1 -1 -1 -1 -1 -1 -1 -1 2 -1 0 0 1 1 -1 -1 -1 -1 -1 1 -1 0 0 1 1 -1 -1 -1 -1 -1 0 -1 0 0 1 -1 -1 -1 -1 -1 -1 0 -1 0 0 -1 -1 -1 -1 -1 -1 -1 0 t f t f f f t f t f f f t f f f f f f f t f t f f f t f t f f f t f f f f f f f f
-1 0 0 0 0 3 -1 -1 -1 -1 0 -1 0 0 0 0 0 -1 -1 -1 -1 3 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -10 -1 0 0 0 0 1 -1 -1 -1 -1 0 -1 0 0 0 0 0 -1 -1 -1 -1 1 -1 0 -1 -1 -1 -1 -1 -1 -1 -1 2 -1 0 0 1 1 1 -1 -1 -1 -1 1 -1 0 0 1 1 -1 -1 -1 -1 -1 0 -1 0 0 1 -1 -1 -1 -1 -1 -1 0 -1 0 0 -1 -1 -1 -1 -1 -1 -1 0 t f t f f f t f t f f f f t f f f f f f t f t f f f t f t f f f f t f f f f f f f
-1 0 0 0 0 0 3 -1 -1 -1 0 -1 0 0 0 0 0 0 -1 -1 -1 3 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -10 -1 0 0 0 0 0 1 -1 -1 -1 0 -1 0 0 0 0 0 0 -1 -1 -1 1 -1 0 -1 -1 -1 -1 -1 -1 -1 -1 2 -1 0 0 1 1 1 -1 -1 -1 -1 0 -1 0 0 1 1 -1 -1 -1 -1 -1 0 -1 0 0 1 -1 -1 -1 -1 -1 -1 0 -1 0 0 -1 -1 -1 -1 -1 -1 -1 0 t f t f f f t f t f f f f f f f f f f f t f t f f f t f t f f f f f f f f f f f f
-1 0 0 0 0 0 0 3 -1 -1 0 -1 0 0 0 0 0 0 0 -1 -1 3 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -10 -1 0 0 0 0 0 0 1 -1 -1 0 -1 0 0 0 0 0 0 0 -1 -1 1 -1 0 -1 -1 -1 -1 -1 -1 -1 -1 2 -1 0 0 1 1 1 -1 -1 -1 -1 0 -1 0 0 1 1 -1 -1 -1 -1 -1 0 -1 0 0 1 -1 -1 -1 -1 -1 -1 0 -1 0 0 -1 -1 -1 -1 -1 -1 -1 0 t f t f f f t f t f f f f f f f f f f f t f t f f f t f t f f f f f f f f f f f f
-1 0 0 0 0 0 0 0 3 -1 0 -1 0 0 0 0 0 0 0 0 -1 3 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -10 -1 0 0 0 0 0 0 0 1 -1 0 -1 0 0 0 0 0 0 0 0 -1 1 -1 0 -1 -1 -1 -1 -1 -1 -1 -1 2 -1 0 0 1 1 1 -1 -1 -1 -1 0 -1 0 0 1 1 -1 -1 -1 -1 -1 0 -1 0 0 1 -1 -1 -1 -1 -1 -1 0 -1 0 0 -1 -1 -1 -1 -1 -1 -1 0 t f t f f f t f t f f f f f f f f f f f t f t f f f t f t f f f f f f f f f f f f
-1 0 0 0 0 0 0 0 0 3 0 -1 0 0 0 0 0 0 0 0 0 3 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -10 -1 0 0 0 0 0 0 0 0 1 0 -1 0 0 0 0 0 0 0 0 0 1 -1 0 -1 -1 -1 -1 -1 -1 -1 -1 2 -1 0 0 1 1 1 -1 -1 -1 -1 0 -1 0 0 1 1 -1 -1 -1 -1 -1 0 -1 0 0 1 -1 -1 -1 -1 -1 -1 0 -1 0 0 -1 -1 -1 -1 -1 -1 -1 0 t f t f f f t f t f f f f f f f f f f f t f t f f f t f t f f f f f f f f f f f f
0 0 0 0 0 0 0 0 0 3 0 -1 2 -1 -1 -1 -1 -1 -1 -1 -1 3 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -10 -1 1 -1 -1 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 0 0 0 0 0 1 -1 0 -1 -1 -1 -1 -1 -1 -1 -1 2 -1 0 0 1 1 1 -1 -1 -1 -1 0 -1 0 0 1 1 -1 -1 -1 -1 -1 0 -1 0 0 1 -1 -1 -1 -1 -1 -1 0 -1 0 0 -1 -1 -1 -1 -1 -1 -1 0 t f t f f f f t t f f f f f f f f f f f t f t f f f f t t f f f f f f f f f f f f
-1 2 3 -1 -1 -1 -1 -1 -1 -1 0 -1 1 1 -1 -1 -1 -1 -1 -1 -1 3 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -10 -1 1 -1 -1 -1 -1 -1 -1 -1 -1 2 -1 1 0 -1 -1 -1 -1 -1 -1 -1 1 -1 0 -1 -1 -1 -1 -1 -1 -1 -1 2 -1 0 0 1 1 1 -1 -1 -1 -1 0 -1 0 0 1 1 -1 -1 -1 -1 -1 0 -1 0 0 1 -1 -1 -1 -1 -1 -1 0 -1 0 0 -1 -1 -1 -1 -1 -1 -1 0 t f t f f f f f f f f f f f f f f f f f t f t f f f f f f f f f f f f f f f f f f
-1 1 1 3 -1 -1 -1 -1 -1 -1 0 -1 1 0 0 -1 -1 -1 -1 -1 -1 3 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -10 -1 1 -1 -1 -1 -1 -1 -1 -1 -1 2 -1 1 0 -1 -1 -1 -1 -1 -1 -1 1 -1 0 -1 -1 -1 -1 -1 -1 -1 -1 2 -1 0 0 1 1 1 -1 -1 -1 -1 0 -1 0 0 1 1 -1 -1 -1 -1 -1 0 -1 0 0 1 -1 -1 -1 -1 -1 -1 0 -1 0 0 -1 -1 -1 -1 -1 -1 -1 0 t f f t f f f f f f f f f f f f f f f f t f f t f f f f f f f f f f f f f f f f f
-1 1 0 0 3 -1 -1 -1 -1 -1 0 -1 1 0 0 -1 -1 -1 -1 -1 -1 0 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -10 -1 1 -1 -1 -1 -1 -1 -1 -1 -1 2 -1 1 0 -1 -1 -1 -1 -1 -1 -1 1 -1 0 -1 -1 -1 -1 -1 -1 -1 -1 2 -1 0 0 1 1 1 -1 -1 -1 -1 0 -1 0 0 1 1 -1 -1 -1 -1 -1 0 -1 0 0 1 -1 -1 -1 -1 -1 -1 0 -1 0 0 -1 -1 -1 -1 -1 -1 -1 0 f f f f f f f f f f f f f f f f f f f f t f f t f f f f f f f f f f f f f f f f t
-1 0 -1 -1 -1 -1 -1 -1 -1 -1 0 -1 0 -1 -1 -1 -1 -1 -1 -1 -1 3 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -10 -1 0 -1 -1 -1 -1 -1 -1 -1 -1 0 -1 2 -1 -1 -1 -1 -1 -1 -1 -1 1 -1 0 -1 -1 -1 -1 -1 -1 -1 -1 0 -1 0 -1 -1 -1 -1 -1 -1 -1 -1 1 -1 0 -1 -1 -1 -1 -1 -1 -1 -1 0 -1 0 -1 -1 -1 -1 -1 -1 -1 -1 1 -1 1 -1 -1 -1 -1 -1 -1 -1 -1 1 t f f t f f t f t f t f t f t f t f t f t f f t f f t f t f t f t f t f t f t f f
-1 0 0 -1 -1 -1 -1 -1 -1 -1 0 -1 0 -1 -1 -1 -1 -1 -1 -1 -1 2 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -10 -1 0 2 -1 -1 -1 -1 -1 -1 -1 0 -1 0 2 -1 -1 -1 -1 -1 -1 -1 1 -1 0 0 -1 -1 -1 -1 -1 -1 -1 0 -1 0 0 -1 -1 -1 -1 -1 -1 -1 1 -1 0 0 -1 -1 -1 -1 -1 -1 -1 0 -1 0 1 -1 -1 -1 -1 -1 -1 -1 1 -1 0 1 -1 -1 -1 -1 -1 -1 -1 1 f f f f f f f t t f t f t f t f t f t f f f f f f f f t t f t f t f t f t f t f f
-1 0 0 -1 -1 -1 -1 -1 -1 -1 0 -1 0 -1 -1 -1 -1 -1 -1 -1 -1 2 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -10 -1 0 2 -1 -1 -1 -1 -1 -1 -1 1 -1 0 2 2 -1 -1 -1 -1 -1 -1 1 -1 0 0 0 -1 -1 -1 -1 -1 -1 0 -1 0 0 0 -1 -1 -1 -1 -1 -1 1 -1 0 0 1 -1 -1 -1 -1 -1 -1 0 -1 0 0 1 -1 -1 -1 -1 -1 -1 1 -1 0 0 2 -1 -1 -1 -1 -1 -1 1 f f f f f f f f f f t f t f t f t f t f f f f f f f f f f f t f t f t f t f t f f
-1 0 0 -1 -1 -1 -1 -1 -1 -1 0 -1 0 -1 -1 -1 -1 -1 -1 -1 -1 2 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -10 -1 0 2 -1 -1 -1 -1 -1 -1 -1 1 -1 0 2 2 -1 -1 -1 -1 -1 -1 1 -1 0 0 0 0 -1 -1 -1 -1 -1 0 -1 0 0 0 1 -1 -1 -1 -1 -1 1 -1 0 0 0 1 -1 -1 -1 -1 -1 0 -1 0 0 1 1 -1 -1 -1 -1 -1 1 -1 0 0 0 2 -1 -1 -1 -1 -1 1 f f f f f f f f f f t f t f t f t f t f f f f f f f f f f f t f t f t f t f t f f
-1 0 0 -1 -1 -1 -1 -1 -1 -1 0 -1 0 -1 -1 -1 -1 -1 -1 -1 -1 2 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -10 -1 0 2 -1 -1 -1 -1 -1 -1 -1 1 -1 0 2 2 -1 -1 -1 -1 -1 -1 1 -1 0 0 0 1 0 -1 -1 -1 -1 0 -1 0 0 0 0 1 -1 -1 -1 -1 1 -1 0 0 0 1 1 -1 -1 -1 -1 0 -1 0 0 0 1 1 -1 -1 -1 -1 1 -1 0 0 0 0 2 -1 -1 -1 -1 1 f f f f f f f f f f t f t f t f t f t f f f f f f f f f f f t f t f t f t f t f f
-1 0 0 -1 -1 -1 -1 -1 -1 -1 0 -1 0 -1 -1 -1 -1 -1 -1 -1 -1 2 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -10 -1 0 2 -1 -1 -1 -1 -1 -1 -1 1 -1 0 2 2 -1 -1 -1 -1 -1 -1 1 -1 0 0 0 0 1 0 -1 -1 -1 0 -1 0 0 0 1 0 1 -1 -1 -1 1 -1 0 0 0 0 1 1 -1 -1 -1 0 -1 0 0 0 0 2 0 -1 -1 -1 1 -1 0 0 0 1 0 2 -1 -1 -1 1 f f f f f f f f f f t f t f t f t f t f f f f f f f f f f f t f t f t f t f t f f
-1 0 0 -1 -1 -1 -1 -1 -1 -1 0 -1 0 -1 -1 -1 -1 -1 -1 -1 -1 2 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -10 -1 0 2 -1 -1 -1 -1 -1 -1 -1 1 -1 0 2 2 -1 -1 -1 -1 -1 -1 1 -1 0 0 0 1 0 1 0 -1 -1 0 -1 0 0 0 0 1 0 1 -1 -1 1 -1 0 0 0 0 2 0 0 -1 -1 0 -1 0 0 0 0 1 1 1 -1 -1 1 -1 0 0 0 0 1 0 2 -1 -1 1 f f f f f f f f f f t f t f t f t f t f f f f f f f f f f f t f t f t f t f t f f
-1 0 0 -1 -1 -1 -1 -1 -1 -1 0 -1 0 -1 -1 -1 -1 -1 -1 -1 -1 2 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -10 -1 0 2 -1 -1 -1 -1 -1 -1 -1 1 -1 0 2 2 -1 -1 -1 -1 -1 -1 1 -1 0 0 0 0 1 0 1 0 -1 0 -1 0 0 0 0 2 0 0 0 -1 1 -1 0 0 0 0 1 0 1 1 -1 0 -1 0 0 0 0 1 0 2 0 -1 1 -1 0 0 0 0 1 1 1 1 -1 1 f f f f f f f f f f t f t f t f t f t f f f f f f f f f f f t f t f t f t f t f f
-1 0 0 -1 -1 -1 -1 -1 -1 -1 0 -1 0 -1 -1 -1 -1 -1 -1 -1 -1 2 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -10 -1 0 2 -1 -1 -1 -1 -1 -1 -1 1 -1 0 2 2 -1 -1 -1 -1 -1 -1 1 -1 0 0 0 0 1 1 1 1 1 0 -1 0 0 0 0 1 0 1 0 1 1 -1 0 0 0 0 1 0 2 0 0 0 -1 0 0 0 0 1 0 1 1 1 1 -1 0 0 0 0 1 0 1 0 2 1 f f f f f f f f f f t f t f t f t f t f f f f f f f f f f f t f t f t f t f t f f
-1 0 0 -1 -1 -1 -1 -1 -1 -1 0 -1 0 -1 -1 -1 -1 -1 -1 -1 -1 2 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -10 -1 0 2 -1 -1 -1 -1 -1 -1 -1 1 -1 0 2 2 -1 -1 -1 -1 -1 -1 1 -1 2 -1 -1 -1 -1 -1 -1 -1 -1 0 0 0 0 0 1 0 2 0 0 0 1 0 0 0 0 1 0 1 0 1 1 0 0 0 0 0 1 0 1 0 2 0 1 0 0 0 0 1 0 1 1 1 1 1 f f f f f f f f f f f t t f t f t f t f f f f f f f f f f f f t t f t f t f t f f
-1 0 0 -1 -1 -1 -1 -1 -1 -1 0 -1 0 -1 -1 -1 -1 -1 -1 -1 -1 2 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -10 -1 0 2 -1 -1 -1 -1 -1 -1 -1 1 -1 0 2 2 -1 -1 -1 -1 -1 -1 1 -1 2 -1 -1 -1 -1 -1 -1 -1 -1 2 -1 2 1 -1 -1 -1 -1 -1 -1 -1 1 0 0 0 1 0 1 0 2 0 0 0 0 0 0 1 0 1 0 1 1 1 1 -1 2 2 -1 -1 -1 -1 -1 -1 -1 1 f f f f f f f f f f f f f f t f t f f t f f f f f f f f f f f f f f t f t f f t f
-1 0 0 -1 -1 -1 -1 -1 -1 -1 0 -1 0 -1 -1 -1 -1 -1 -1 -1 -1 2 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -10 -1 0 2 -1 -1 -1 -1 -1 -1 -1 1 -1 0 2 2 -1 -1 -1 -1 -1 -1 1 -1 2 -1 -1 -1 -1 -1 -1 -1 -1 2 -1 2 1 -1 -1 -1 -1 -1 -1 -1 1 -1 2 1 1 -1 -1 -1 -1 -1 -1 0 -1 2 2 0 -1 -1 -1 -1 -1 -1 1 -1 2 2 -1 -1 -1 -1 -1 -1 -1 0 f f f f f f f f f f f f f f f t t f f f f f f f f f f f f f f f f f f t t f f f f
-1 0 0 -1 -1 -1 -1 -1 -1 -1 0 -1 0 -1 -1 -1 -1 -1 -1 -1 -1 2 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -10 -1 0 2 -1 -1 -1 -1 -1 -1 -1 1 -1 0 2 2 -1 -1 -1 -1 -1 -1 1 -1 2 -1 -1 -1 -1 -1 -1 -1 -1 2 -1 2 1 -1 -1 -1 -1 -1 -1 -1 1 -1 2 1 1 -1 -1 -1 -1 -1 -1 1 -1 2 1 1 1 -1 -1 -1 -1 -1 1 -1 2 2 -1 -1 -1 -1 -1 -1 -1 0 f f f f f f f f f f f f f f f f f f t f f f f f f f f f f f f f f f f f f f t f f
-1 0 0 -1 -1 -1 -1 -1 -1 -1 0 -1 0 -1 -1 -1 -1 -1 -1 -1 -1 2 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -10 -1 0 2 -1 -1 -1 -1 -1 -1 -1 1 -1 0 2 2 -1 -1 -1 -1 -1 -1 1 -1 2 -1 -1 -1 -1 -1 -1 -1 -1 2 -1 2 1 -1 -1 -1 -1 -1 -1 -1 1 -1 2 1 1 -1 -1 -1 -1 -1 -1 1 -1 2 1 1 1 -1 -1 -1 -1 -1 1 -1 2 1 1 1 1 -1 -1 -1 -1 0 f f f f f f f f f f f f f f f f f f f t f f f f f f f f f f f f f f f f f f f t f
-1 0 0 -1 -1 -1 -1 -1 -1 -1 0 -1 0 -1 -1 -1 -1 -1 -1 -1 -1 2 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -10 -1 0 2 -1 -1 -1 -1 -1 -1 -1 1 -1 0 2 2 -1 -1 -1 -1 -1 -1 1 -1 2 -1 -1 -1 -1 -1 -1 -1 -1 2 -1 2 1 -1 -1 -1 -1 -1 -1 -1 1 -1 2 1 1 -1 -1 -1 -1 -1 -1 1 -1 2 1 1 1 -1 -1 -1 -1 -1 1 -1 2 1 1 1 1 -1 -1 -1 -1 1 f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f t t
#This algo is silent after 66 moves, 13 steps, 14 rounds.
#This algo is silent after 72 moves, 15 steps, 16 rounds.
q
#quit
......
......@@ -4,42 +4,46 @@
#step 1
-1 -1 -1 -1 -1 -1 -1 -1 -1 -1 0 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 3 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -10 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 0 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 0 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 0 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 1 t f t f f f t f t f t f t f t f t f t f f #outs f f f f f f f f f f f f t f f f t f t f
#step 2
-1 -1 -1 -1 -1 -1 -1 -1 -1 -1 0 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 3 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -10 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 0 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 0 -1 1 -1 -1 -1 -1 -1 -1 -1 -1 1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 0 -1 0 -1 -1 -1 -1 -1 -1 -1 -1 1 -1 0 -1 -1 -1 -1 -1 -1 -1 -1 1 t f t f f f t f t f t f f t t f f f f t f #outs t f t f f f t f t f t f f f t f f f f f
-1 -1 -1 -1 -1 -1 -1 -1 -1 -1 0 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 3 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -10 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 0 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 0 -1 0 -1 -1 -1 -1 -1 -1 -1 -1 1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 0 -1 0 -1 -1 -1 -1 -1 -1 -1 -1 1 -1 1 -1 -1 -1 -1 -1 -1 -1 -1 1 t f t f f f t f t f t f f t t f t f t f f #outs t f t f f f t f t f t f f f t f t f f f
#step 3
-1 3 -1 -1 -1 -1 -1 -1 -1 -1 0 -1 0 -1 -1 -1 -1 -1 -1 -1 -1 3 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -10 -1 1 -1 -1 -1 -1 -1 -1 -1 -1 0 -1 0 -1 -1 -1 -1 -1 -1 -1 -1 1 -1 0 -1 -1 -1 -1 -1 -1 -1 -1 0 -1 1 -1 -1 -1 -1 -1 -1 -1 -1 1 -1 0 1 -1 -1 -1 -1 -1 -1 -1 0 -1 0 -1 -1 -1 -1 -1 -1 -1 -1 1 -1 0 -1 -1 -1 -1 -1 -1 -1 -1 1 t f t f f f t f t f f t t f f f t f t f f #outs t f t f f f f f f f f t t f f f t f t f
-1 0 -1 -1 -1 -1 -1 -1 -1 -1 0 -1 0 -1 -1 -1 -1 -1 -1 -1 -1 3 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -10 -1 0 -1 -1 -1 -1 -1 -1 -1 -1 0 -1 2 -1 -1 -1 -1 -1 -1 -1 -1 1 -1 0 0 -1 -1 -1 -1 -1 -1 -1 0 -1 0 -1 -1 -1 -1 -1 -1 -1 -1 1 -1 0 0 -1 -1 -1 -1 -1 -1 -1 0 -1 1 -1 -1 -1 -1 -1 -1 -1 -1 1 -1 1 -1 -1 -1 -1 -1 -1 -1 -1 1 t f f t f f t f t f f t t f t f t f t f f #outs t f f t f f f f f f f t t f t f t f t f
#step 4
-1 0 3 -1 -1 -1 -1 -1 -1 -1 0 -1 0 0 -1 -1 -1 -1 -1 -1 -1 3 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -10 -1 1 -1 -1 -1 -1 -1 -1 -1 -1 0 -1 0 -1 -1 -1 -1 -1 -1 -1 -1 1 -1 0 -1 -1 -1 -1 -1 -1 -1 -1 2 -1 0 1 -1 -1 -1 -1 -1 -1 -1 1 -1 0 1 -1 -1 -1 -1 -1 -1 -1 0 -1 0 1 -1 -1 -1 -1 -1 -1 -1 1 -1 0 0 -1 -1 -1 -1 -1 -1 -1 1 t f f t f f t f t f f f f f t f t f f t f #outs f f f t f f t f f f f f f f f f t f f f
-1 0 0 -1 -1 -1 -1 -1 -1 -1 0 -1 0 -1 -1 -1 -1 -1 -1 -1 -1 2 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -10 -1 0 -1 -1 -1 -1 -1 -1 -1 -1 0 -1 2 -1 -1 -1 -1 -1 -1 -1 -1 1 -1 0 0 -1 -1 -1 -1 -1 -1 -1 1 -1 0 0 0 -1 -1 -1 -1 -1 -1 1 -1 0 1 -1 -1 -1 -1 -1 -1 -1 0 -1 0 0 1 -1 -1 -1 -1 -1 -1 1 -1 0 0 2 -1 -1 -1 -1 -1 -1 1 f f f f f f t f t f t f t f t f t f t f f #outs f f f f f f t f f f f f f f f f t f f f
#step 5
-1 0 3 -1 -1 -1 -1 -1 -1 -1 0 -1 0 0 -1 -1 -1 -1 -1 -1 -1 0 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -10 -1 0 0 1 -1 -1 -1 -1 -1 -1 0 -1 0 -1 -1 -1 -1 -1 -1 -1 -1 1 -1 0 -1 -1 -1 -1 -1 -1 -1 -1 2 -1 0 1 -1 -1 -1 -1 -1 -1 -1 1 -1 0 1 -1 -1 -1 -1 -1 -1 -1 0 -1 0 0 1 -1 -1 -1 -1 -1 -1 1 -1 0 0 -1 -1 -1 -1 -1 -1 -1 1 t f f f f f f t t f f f f f t f f t f t f #outs t f f f f f f f t f f f f f f f f t f f
-1 0 0 -1 -1 -1 -1 -1 -1 -1 0 -1 0 -1 -1 -1 -1 -1 -1 -1 -1 2 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -10 -1 0 2 -1 -1 -1 -1 -1 -1 -1 0 -1 2 -1 -1 -1 -1 -1 -1 -1 -1 1 -1 0 0 -1 -1 -1 -1 -1 -1 -1 1 -1 0 0 0 -1 -1 -1 -1 -1 -1 1 -1 0 1 -1 -1 -1 -1 -1 -1 -1 0 -1 0 0 2 0 -1 -1 -1 -1 -1 1 -1 0 0 2 -1 -1 -1 -1 -1 -1 1 f f f f f f f t t f t f t f t f f t f t f #outs f f f f f f f f t f t f t f f f f t f f
#step 6
-1 0 0 3 -1 -1 -1 -1 -1 -1 0 -1 0 0 -1 -1 -1 -1 -1 -1 -1 0 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -10 -1 0 0 1 -1 -1 -1 -1 -1 -1 0 -1 0 0 0 -1 -1 -1 -1 -1 -1 1 -1 0 -1 -1 -1 -1 -1 -1 -1 -1 2 -1 0 1 -1 -1 -1 -1 -1 -1 -1 1 -1 0 1 -1 -1 -1 -1 -1 -1 -1 0 -1 0 0 1 -1 -1 -1 -1 -1 -1 0 -1 0 0 -1 -1 -1 -1 -1 -1 -1 1 f f t f f f t f f t f f f f t f f f f t f #outs f f t f f f f f f f f f f f t f f f f t
-1 0 0 -1 -1 -1 -1 -1 -1 -1 0 -1 0 -1 -1 -1 -1 -1 -1 -1 -1 2 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -10 -1 0 2 -1 -1 -1 -1 -1 -1 -1 0 -1 0 2 2 -1 -1 -1 -1 -1 -1 1 -1 0 0 0 0 -1 -1 -1 -1 -1 1 -1 0 0 1 -1 -1 -1 -1 -1 -1 1 -1 0 1 -1 -1 -1 -1 -1 -1 -1 0 -1 0 0 2 0 -1 -1 -1 -1 -1 0 -1 0 0 2 -1 -1 -1 -1 -1 -1 1 f f f f f f f t f f t f t f t f f f t f f #outs f f f f f f f f f f f f f f t f f f f f
#step 7
-1 0 0 3 -1 -1 -1 -1 -1 -1 0 -1 0 0 0 0 -1 -1 -1 -1 -1 0 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -10 -1 0 0 1 -1 -1 -1 -1 -1 -1 0 -1 0 0 0 -1 -1 -1 -1 -1 -1 1 -1 0 -1 -1 -1 -1 -1 -1 -1 -1 2 -1 0 1 -1 -1 -1 -1 -1 -1 -1 1 -1 0 0 1 1 -1 -1 -1 -1 -1 0 -1 0 0 1 -1 -1 -1 -1 -1 -1 0 -1 0 0 -1 -1 -1 -1 -1 -1 -1 0 t f f f f f t f t f f f t f f f f f f f f #outs f f f f f f t f f f f f t f f f f f f f
-1 0 0 -1 -1 -1 -1 -1 -1 -1 0 -1 0 -1 -1 -1 -1 -1 -1 -1 -1 2 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -10 -1 0 2 -1 -1 -1 -1 -1 -1 -1 0 -1 0 2 2 -1 -1 -1 -1 -1 -1 1 -1 0 0 0 0 -1 -1 -1 -1 -1 1 -1 0 0 1 -1 -1 -1 -1 -1 -1 1 -1 0 0 1 1 -1 -1 -1 -1 -1 0 -1 0 0 2 0 -1 -1 -1 -1 -1 0 -1 0 0 2 -1 -1 -1 -1 -1 -1 1 f f f f f f f t f f t f t f f t t f t f f #outs f f f f f f f t f f f f t f f t f f t f
#step 8
-1 0 0 3 -1 -1 -1 -1 -1 -1 0 -1 0 0 0 0 -1 -1 -1 -1 -1 0 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -10 -1 0 0 0 0 1 -1 -1 -1 -1 0 -1 0 0 0 -1 -1 -1 -1 -1 -1 1 -1 0 -1 -1 -1 -1 -1 -1 -1 -1 2 -1 0 0 1 1 1 -1 -1 -1 -1 1 -1 0 0 1 1 -1 -1 -1 -1 -1 0 -1 0 0 1 -1 -1 -1 -1 -1 -1 0 -1 0 0 -1 -1 -1 -1 -1 -1 -1 0 t f f f f f f t t f f f f t f f f f f f f #outs t f f f f f f f t f f f f t f f f f f f
-1 0 0 -1 -1 -1 -1 -1 -1 -1 0 -1 0 -1 -1 -1 -1 -1 -1 -1 -1 2 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -10 -1 0 2 -1 -1 -1 -1 -1 -1 -1 1 -1 0 2 2 -1 -1 -1 -1 -1 -1 1 -1 0 0 0 0 -1 -1 -1 -1 -1 1 -1 0 0 0 0 1 -1 -1 -1 -1 1 -1 0 0 1 1 -1 -1 -1 -1 -1 1 -1 0 0 2 0 -1 -1 -1 -1 -1 0 -1 0 0 0 0 2 -1 -1 -1 -1 1 f f f f f f f f f f t f f f t f t f f t f #outs f f f f f f f f f f t f f f f f f f f f
#step 9
-1 0 0 0 0 3 -1 -1 -1 -1 0 -1 0 0 0 0 -1 -1 -1 -1 -1 0 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -10 -1 0 0 0 0 1 -1 -1 -1 -1 0 -1 0 0 0 0 0 -1 -1 -1 -1 1 -1 0 -1 -1 -1 -1 -1 -1 -1 -1 2 -1 0 0 1 1 1 -1 -1 -1 -1 0 -1 0 0 1 1 -1 -1 -1 -1 -1 0 -1 0 0 1 -1 -1 -1 -1 -1 -1 0 -1 0 0 -1 -1 -1 -1 -1 -1 -1 0 f f t f f f t f f t f f f f f f f f f f f #outs f f f f f f t f f t f f f f f f f f f f
-1 0 0 -1 -1 -1 -1 -1 -1 -1 0 -1 0 -1 -1 -1 -1 -1 -1 -1 -1 2 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -10 -1 0 2 -1 -1 -1 -1 -1 -1 -1 1 -1 0 2 2 -1 -1 -1 -1 -1 -1 1 -1 0 0 0 0 1 0 -1 -1 -1 1 -1 0 0 0 0 1 -1 -1 -1 -1 1 -1 0 0 1 1 -1 -1 -1 -1 -1 1 -1 0 0 2 0 -1 -1 -1 -1 -1 0 -1 0 0 0 0 2 -1 -1 -1 -1 1 f f f f f f f f f f f f t f t f t f t f f #outs f f f f f f f f f f f f f f t f f f f f
#step 10
-1 0 0 0 0 3 -1 -1 -1 -1 0 -1 0 0 0 0 -1 -1 -1 -1 -1 0 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -10 -1 0 0 0 0 0 1 -1 -1 -1 0 -1 0 0 0 0 0 -1 -1 -1 -1 0 -1 0 -1 -1 -1 -1 -1 -1 -1 -1 2 -1 0 0 1 1 1 -1 -1 -1 -1 0 -1 0 0 1 1 -1 -1 -1 -1 -1 0 -1 0 0 1 -1 -1 -1 -1 -1 -1 0 -1 0 0 -1 -1 -1 -1 -1 -1 -1 0 f f t f f f f f f f f f f f f f f f f f f #outs f f t f f f f f f f f f f f f f f f f f
-1 0 0 -1 -1 -1 -1 -1 -1 -1 0 -1 0 -1 -1 -1 -1 -1 -1 -1 -1 2 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -10 -1 0 2 -1 -1 -1 -1 -1 -1 -1 1 -1 0 2 2 -1 -1 -1 -1 -1 -1 1 -1 0 0 0 0 1 0 -1 -1 -1 1 -1 0 0 0 0 1 -1 -1 -1 -1 1 -1 0 0 0 0 1 1 -1 -1 -1 1 -1 0 0 2 0 -1 -1 -1 -1 -1 0 -1 0 0 0 0 2 -1 -1 -1 -1 1 f f f f f f f f f f f f t f f f t f t f f #outs f f f f f f f f f f f f t f f f f f t f
#step 11
-1 0 0 0 0 3 -1 -1 -1 -1 0 -1 0 0 0 0 0 0 -1 -1 -1 0 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -10 -1 0 0 0 0 0 1 -1 -1 -1 0 -1 0 0 0 0 0 -1 -1 -1 -1 0 -1 0 -1 -1 -1 -1 -1 -1 -1 -1 2 -1 0 0 1 1 1 -1 -1 -1 -1 0 -1 0 0 1 1 -1 -1 -1 -1 -1 0 -1 0 0 1 -1 -1 -1 -1 -1 -1 0 -1 0 0 -1 -1 -1 -1 -1 -1 -1 0 t f f f f f t f t f f f f f f f f f f f f #outs t f f f f f t f t f f f f f f f f f f f
-1 0 0 -1 -1 -1 -1 -1 -1 -1 0 -1 0 -1 -1 -1 -1 -1 -1 -1 -1 2 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -10 -1 0 2 -1 -1 -1 -1 -1 -1 -1 1 -1 0 2 2 -1 -1 -1 -1 -1 -1 1 -1 0 0 0 0 1 0 -1 -1 -1 1 -1 0 0 0 0 1 0 1 -1 -1 1 -1 0 0 0 0 1 1 -1 -1 -1 1 -1 0 0 2 0 -1 -1 -1 -1 -1 0 -1 0 0 0 0 1 0 2 -1 -1 1 f f f f f f f f f f t f f f t f t f f t f #outs f f f f f f f f f f t f f f t f t f f f
#step 12
-1 0 0 0 0 0 0 3 -1 -1 0 -1 0 0 0 0 0 0 -1 -1 -1 0 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -10 -1 0 0 0 0 0 0 1 -1 -1 0 -1 0 0 0 0 0 0 0 -1 -1 0 -1 0 -1 -1 -1 -1 -1 -1 -1 -1 2 -1 0 0 1 1 1 -1 -1 -1 -1 0 -1 0 0 1 1 -1 -1 -1 -1 -1 0 -1 0 0 1 -1 -1 -1 -1 -1 -1 0 -1 0 0 -1 -1 -1 -1 -1 -1 -1 0 f f t f f f t f f f f f f f f f f f f f f #outs f f f f f f t f f f f f f f f f f f f f
-1 0 0 -1 -1 -1 -1 -1 -1 -1 0 -1 0 -1 -1 -1 -1 -1 -1 -1 -1 2 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -10 -1 0 2 -1 -1 -1 -1 -1 -1 -1 1 -1 0 2 2 -1 -1 -1 -1 -1 -1 1 -1 0 0 0 0 1 0 1 0 -1 1 -1 0 0 0 0 1 0 1 -1 -1 1 -1 0 0 0 0 1 0 1 1 -1 1 -1 0 0 0 0 1 0 2 0 -1 0 -1 0 0 0 0 1 0 2 -1 -1 1 f f f f f f f f f f f f t f f f t f t f f #outs f f f f f f f f f f f f f f f f t f f f
#step 13
-1 0 0 0 0 0 0 3 -1 -1 0 -1 0 0 0 0 0 0 -1 -1 -1 0 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -10 -1 0 0 0 0 0 0 0 1 -1 0 -1 0 0 0 0 0 0 0 -1 -1 0 -1 0 -1 -1 -1 -1 -1 -1 -1 -1 2 -1 0 0 1 1 1 -1 -1 -1 -1 0 -1 0 0 1 1 -1 -1 -1 -1 -1 0 -1 0 0 1 -1 -1 -1 -1 -1 -1 0 -1 0 0 -1 -1 -1 -1 -1 -1 -1 0 f f t f f f f f f f f f f f f f f f f f f #outs f f t f f f f f f f f f f f f f f f f f
-1 0 0 -1 -1 -1 -1 -1 -1 -1 0 -1 0 -1 -1 -1 -1 -1 -1 -1 -1 2 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -10 -1 0 2 -1 -1 -1 -1 -1 -1 -1 1 -1 0 2 2 -1 -1 -1 -1 -1 -1 1 -1 0 0 0 0 1 0 1 0 -1 1 -1 0 0 0 0 1 0 1 -1 -1 1 -1 0 0 0 0 1 0 1 1 -1 1 -1 0 0 0 0 1 0 1 1 1 0 -1 0 0 0 0 1 0 2 -1 -1 1 f f f f f f f f f f f f t f f f f t t f f #outs f f f f f f f f f f f f f f f f f f t f
#step 14
-1 0 0 0 0 0 0 3 -1 -1 0 -1 0 0 0 0 0 0 0 0 -1 0 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -10 -1 0 0 0 0 0 0 0 1 -1 0 -1 0 0 0 0 0 0 0 -1 -1 0 -1 0 -1 -1 -1 -1 -1 -1 -1 -1 2 -1 0 0 1 1 1 -1 -1 -1 -1 0 -1 0 0 1 1 -1 -1 -1 -1 -1 0 -1 0 0 1 -1 -1 -1 -1 -1 -1 0 -1 0 0 -1 -1 -1 -1 -1 -1 -1 0 t f f f f f t f t f f f f f f f f f f f f #outs t f f f f f t f t f f f f f f f f f f f
-1 0 0 -1 -1 -1 -1 -1 -1 -1 0 -1 0 -1 -1 -1 -1 -1 -1 -1 -1 2 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -10 -1 0 2 -1 -1 -1 -1 -1 -1 -1 1 -1 0 2 2 -1 -1 -1 -1 -1 -1 1 -1 0 0 0 0 1 0 1 0 -1 1 -1 0 0 0 0 1 0 1 -1 -1 1 -1 0 0 0 0 1 0 1 1 -1 1 -1 0 0 0 0 1 0 1 1 1 0 -1 0 0 0 0 1 0 1 0 2 1 f f f f f f f f f f f f t f f f f t f t f #outs f f f f f f f f f f f f f f f f f t f t
#step 15
-1 0 0 0 0 0 0 0 0 3 0 -1 0 0 0 0 0 0 0 0 -1 0 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -10 -1 0 0 0 0 0 0 0 0 1 0 -1 0 0 0 0 0 0 0 0 0 0 -1 0 -1 -1 -1 -1 -1 -1 -1 -1 2 -1 0 0 1 1 1 -1 -1 -1 -1 0 -1 0 0 1 1 -1 -1 -1 -1 -1 0 -1 0 0 1 -1 -1 -1 -1 -1 -1 0 -1 0 0 -1 -1 -1 -1 -1 -1 -1 0 f f t f f f f t f f f f f f f f f f f f f #outs f f t f f f f t f f f f f f f f f f f f
-1 0 0 -1 -1 -1 -1 -1 -1 -1 0 -1 0 -1 -1 -1 -1 -1 -1 -1 -1 2 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -10 -1 0 2 -1 -1 -1 -1 -1 -1 -1 1 -1 0 2 2 -1 -1 -1 -1 -1 -1 1 -1 0 0 0 0 1 0 1 0 -1 1 -1 0 0 0 0 1 0 1 -1 -1 1 -1 0 0 0 0 1 0 1 1 -1 1 -1 0 0 0 0 1 0 1 1 1 1 -1 0 0 0 0 1 0 1 0 2 0 f f f f f f f f f f f f t f f f f f f f f #outs f f f f f f f f f f f f t f f f f f f f
#step 16
-1 0 0 0 0 0 0 0 0 3 0 -1 2 -1 -1 -1 -1 -1 -1 -1 -1 0 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -10 -1 0 0 0 0 0 0 0 0 1 1 -1 0 0 0 0 0 0 0 0 0 0 -1 0 -1 -1 -1 -1 -1 -1 -1 -1 2 -1 0 0 1 1 1 -1 -1 -1 -1 0 -1 0 0 1 1 -1 -1 -1 -1 -1 0 -1 0 0 1 -1 -1 -1 -1 -1 -1 0 -1 0 0 -1 -1 -1 -1 -1 -1 -1 0 t f f t f f t f t f f f f f f f f f f f f #outs t f f f f f t f f f f f f f f f f f f f
-1 0 0 -1 -1 -1 -1 -1 -1 -1 0 -1 0 -1 -1 -1 -1 -1 -1 -1 -1 2 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -10 -1 0 2 -1 -1 -1 -1 -1 -1 -1 1 -1 0 2 2 -1 -1 -1 -1 -1 -1 1 -1 0 0 0 0 1 0 1 0 -1 1 -1 0 0 0 0 1 0 1 0 1 1 -1 0 0 0 0 1 0 1 1 -1 1 -1 0 0 0 0 1 0 1 1 1 1 -1 0 0 0 0 1 0 1 0 2 0 f f f f f f f f f f t f f f t f f f f f f #outs f f f f f f f f f f t f f f t f f f f f
#step 17
-1 2 3 -1 -1 -1 -1 -1 -1 -1 0 -1 2 -1 -1 -1 -1 -1 -1 -1 -1 0 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -10 -1 1 -1 -1 -1 -1 -1 -1 -1 -1 1 -1 0 0 0 0 0 0 0 0 0 0 -1 0 -1 -1 -1 -1 -1 -1 -1 -1 2 -1 0 0 1 1 1 -1 -1 -1 -1 0 -1 0 0 1 1 -1 -1 -1 -1 -1 0 -1 0 0 1 -1 -1 -1 -1 -1 -1 0 -1 0 0 -1 -1 -1 -1 -1 -1 -1 0 f f t f f f f t t f f f f f f f f f f f f #outs f f t f f f f f t f f f f f f f f f f f
-1 0 0 -1 -1 -1 -1 -1 -1 -1 0 -1 0 -1 -1 -1 -1 -1 -1 -1 -1 2 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -10 -1 0 2 -1 -1 -1 -1 -1 -1 -1 1 -1 0 2 2 -1 -1 -1 -1 -1 -1 1 -1 2 -1 -1 -1 -1 -1 -1 -1 -1 1 -1 0 0 0 0 1 0 1 0 1 1 0 0 0 0 1 0 1 0 1 1 1 -1 0 0 0 0 1 0 1 1 1 1 -1 0 0 0 0 1 0 1 0 2 0 f f f f f f f f f f f t t f f t t f t f f #outs f f f f f f f f f f f t t f f t t f f f
#step 18
-1 2 3 -1 -1 -1 -1 -1 -1 -1 0 -1 1 1 -1 -1 -1 -1 -1 -1 -1 0 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -10 -1 1 -1 -1 -1 -1 -1 -1 -1 -1 1 -1 1 0 -1 -1 -1 -1 -1 -1 -1 0 -1 0 -1 -1 -1 -1 -1 -1 -1 -1 2 -1 0 0 1 1 1 -1 -1 -1 -1 0 -1 0 0 1 1 -1 -1 -1 -1 -1 0 -1 0 0 1 -1 -1 -1 -1 -1 -1 0 -1 0 0 -1 -1 -1 -1 -1 -1 -1 0 t f t f f f f t f t f f f f f f f f f f f #outs t f f f f f f t f t f f f f f f f f f f
-1 0 0 -1 -1 -1 -1 -1 -1 -1 0 -1 0 -1 -1 -1 -1 -1 -1 -1 -1 2 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -10 -1 0 2 -1 -1 -1 -1 -1 -1 -1 1 -1 0 2 2 -1 -1 -1 -1 -1 -1 1 -1 2 -1 -1 -1 -1 -1 -1 -1 -1 2 -1 2 1 -1 -1 -1 -1 -1 -1 -1 1 0 0 0 0 1 0 1 0 1 1 -1 0 0 0 0 1 0 1 0 2 0 1 -1 0 0 0 0 1 0 1 0 2 0 f f f f f f f f f f f f f f t f f t t f f #outs f f f f f f f f f f f f f f t f f t t f
#step 19
-1 1 1 3 -1 -1 -1 -1 -1 -1 0 -1 1 1 -1 -1 -1 -1 -1 -1 -1 0 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -10 -1 1 -1 -1 -1 -1 -1 -1 -1 -1 2 -1 1 0 -1 -1 -1 -1 -1 -1 -1 1 -1 0 -1 -1 -1 -1 -1 -1 -1 -1 2 -1 0 0 1 1 1 -1 -1 -1 -1 0 -1 0 0 1 1 -1 -1 -1 -1 -1 0 -1 0 0 1 -1 -1 -1 -1 -1 -1 0 -1 0 0 -1 -1 -1 -1 -1 -1 -1 0 f f t f f f f f f f f f f f f f f f f f f #outs f f t f f f f f f f f f f f f f f f f f
-1 0 0 -1 -1 -1 -1 -1 -1 -1 0 -1 0 -1 -1 -1 -1 -1 -1 -1 -1 2 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -10 -1 0 2 -1 -1 -1 -1 -1 -1 -1 1 -1 0 2 2 -1 -1 -1 -1 -1 -1 1 -1 2 -1 -1 -1 -1 -1 -1 -1 -1 2 -1 2 1 -1 -1 -1 -1 -1 -1 -1 1 -1 2 1 1 -1 -1 -1 -1 -1 -1 -1 0 0 0 0 1 0 1 0 2 0 -1 -1 2 2 -1 -1 -1 -1 -1 -1 -1 0 f f f f f f f f f f f f f f f t t f f f f #outs f f f f f f f f f f f f f f f t t f f f
#step 20
-1 1 1 3 -1 -1 -1 -1 -1 -1 0 -1 1 0 0 -1 -1 -1 -1 -1 -1 0 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -10 -1 1 -1 -1 -1 -1 -1 -1 -1 -1 2 -1 1 0 -1 -1 -1 -1 -1 -1 -1 1 -1 0 -1 -1 -1 -1 -1 -1 -1 -1 2 -1 0 0 1 1 1 -1 -1 -1 -1 0 -1 0 0 1 1 -1 -1 -1 -1 -1 0 -1 0 0 1 -1 -1 -1 -1 -1 -1 0 -1 0 0 -1 -1 -1 -1 -1 -1 -1 0 t f f f f f f f f f f f f f f f f f f f f #outs t f f f f f f f f f f f f f f f f f f f
-1 0 0 -1 -1 -1 -1 -1 -1 -1 0 -1 0 -1 -1 -1 -1 -1 -1 -1 -1 2 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -10 -1 0 2 -1 -1 -1 -1 -1 -1 -1 1 -1 0 2 2 -1 -1 -1 -1 -1 -1 1 -1 2 -1 -1 -1 -1 -1 -1 -1 -1 2 -1 2 1 -1 -1 -1 -1 -1 -1 -1 1 -1 2 1 1 -1 -1 -1 -1 -1 -1 1 -1 2 1 1 1 -1 -1 -1 -1 -1 -1 -1 2 2 -1 -1 -1 -1 -1 -1 -1 0 f f f f f f f f f f f f f f f f f t t f f #outs f f f f f f f f f f f f f f f f f f t f
#step 21
-1 1 0 0 3 -1 -1 -1 -1 -1 0 -1 1 0 0 -1 -1 -1 -1 -1 -1 0 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -10 -1 1 -1 -1 -1 -1 -1 -1 -1 -1 2 -1 1 0 -1 -1 -1 -1 -1 -1 -1 1 -1 0 -1 -1 -1 -1 -1 -1 -1 -1 2 -1 0 0 1 1 1 -1 -1 -1 -1 0 -1 0 0 1 1 -1 -1 -1 -1 -1 0 -1 0 0 1 -1 -1 -1 -1 -1 -1 0 -1 0 0 -1 -1 -1 -1 -1 -1 -1 0 f f f f f f f f f f f f f f f f f f f f t #outs f f f f f f f f f f f f f f f f f f f f
-1 0 0 -1 -1 -1 -1 -1 -1 -1 0 -1 0 -1 -1 -1 -1 -1 -1 -1 -1 2 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -10 -1 0 2 -1 -1 -1 -1 -1 -1 -1 1 -1 0 2 2 -1 -1 -1 -1 -1 -1 1 -1 2 -1 -1 -1 -1 -1 -1 -1 -1 2 -1 2 1 -1 -1 -1 -1 -1 -1 -1 1 -1 2 1 1 -1 -1 -1 -1 -1 -1 1 -1 2 1 1 1 -1 -1 -1 -1 -1 -1 -1 2 1 1 1 1 -1 -1 -1 -1 0 f f f f f f f f f f f f f f f f f t f t f #outs f f f f f f f f f f f f f f f f f f f t
#step 22
-1 0 0 -1 -1 -1 -1 -1 -1 -1 0 -1 0 -1 -1 -1 -1 -1 -1 -1 -1 2 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -10 -1 0 2 -1 -1 -1 -1 -1 -1 -1 1 -1 0 2 2 -1 -1 -1 -1 -1 -1 1 -1 2 -1 -1 -1 -1 -1 -1 -1 -1 2 -1 2 1 -1 -1 -1 -1 -1 -1 -1 1 -1 2 1 1 -1 -1 -1 -1 -1 -1 1 -1 2 1 1 1 -1 -1 -1 -1 -1 -1 -1 2 1 1 1 1 -1 -1 -1 -1 1 f f f f f f f f f f f f f f f f f t f f f #outs f f f f f f f f f f f f f f f f f t f f
#step 23
-1 0 0 -1 -1 -1 -1 -1 -1 -1 0 -1 0 -1 -1 -1 -1 -1 -1 -1 -1 2 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -10 -1 0 2 -1 -1 -1 -1 -1 -1 -1 1 -1 0 2 2 -1 -1 -1 -1 -1 -1 1 -1 2 -1 -1 -1 -1 -1 -1 -1 -1 2 -1 2 1 -1 -1 -1 -1 -1 -1 -1 1 -1 2 1 1 -1 -1 -1 -1 -1 -1 1 -1 2 1 1 1 -1 -1 -1 -1 -1 1 -1 2 1 1 1 1 -1 -1 -1 -1 1 f f f f f f f f f f f f f f f f f f f f t #outs f f f f f f f f f f f f f f f f f f f f
# Time-stamp: <modified the 23/07/2021 (at 11:15) by Erwan Jahier>
# Time-stamp: <modified the 27/08/2021 (at 17:14) by Erwan Jahier>
test: test0 test1 rdbg_test
......@@ -50,8 +50,10 @@ test1: test1.rif
utest: utest0 utest1
rdbg: g.lut g.ml
rdbg --sasa -o lurette.rif \
-env "$(sasa) g.dot -rif"
rdbg --sasa -o lurette.rif -env "$(sasa) g.dot -rif"
rdbgui: g.lut g.ml
rdbgui4sasa -o lurette.rif -env "$(sasa) g.dot -rif"
rdbg2: g.lut g.ml
rdbg --sasa -o lurette.rif \
......
# Automatically generated by /home/jahier/.opam/4.12.0/bin/sasa version "v4.5.2" ("6122a58")
# on crevetete the 31/7/2021 at 9:17:22
# Automatically generated by /home/jahier/.opam/4.12.0/bin/sasa version "v4.5.5" ("9e912de")
# on crevetete the 27/8/2021 at 16:38:05
#sasa ring.dot -seed 42
#seed 42
......@@ -8,29 +8,38 @@
#step 0
#outs 1 3 3 2 2 1 1 0 f f t f t f t t f f f f f f t f f 41.
#outs 1 3 3 2 2 1 1 0 f t f t f t f t f f f f f t f f f 38.
#step 1
#outs 1 3 3 2 2 1 0 0 f f t f t t f t f f f f t t f t f 40.
#outs 1 3 3 2 2 2 1 0 f t f t f f t t f f f t f f t t f 37.
#step 2
#outs 1 3 3 2 1 0 0 1 f f t t t f t f f f f f f f t f f 37.
#outs 1 3 3 3 2 2 2 1 t t f f t f f t f f f f f f f t f 34.
#step 3
#outs 1 3 3 2 1 0 1 1 f f t t t t f f f f t t t f f f f 36.
#outs 1 3 3 3 2 2 2 2 f t f f t f f f f t f f f f f f f 9.
#step 4
#outs 1 3 2 1 0 0 1 1 f t t t f t f f f f f f f t f f f 33.
#outs 1 1 3 3 2 2 2 2 f f t f t f f f f f f f t f f f f 8.
#step 5
#outs 1 3 2 1 0 1 1 1 f t t t t f f f f t t f f f f f f 32.
#outs 1 1 3 3 3 2 2 2 f f t f f t f f f f f f f t f f f 7.
#step 6
#outs 1 2 1 1 0 1 1 1 f t f t t f f f f f f f t f f f f 22.
#outs 1 1 3 3 3 3 2 2 f f t f f f t f f f t f f f f f f 6.
#step 7
#outs 1 2 1 1 1 1 1 1 f t f f f f f f f f f f t f f f t 0.
#outs 1 1 1 3 3 3 2 2 f f f t f f t f f f f t f f f f f 5.
#This algo reached a legitimate configuration after 12 moves, 7 steps, 1 round.
#step 8
#outs 1 1 1 1 3 3 2 2 f f f f t f t f f f f f f f t f f 4.
#step 9
#outs 1 1 1 1 3 3 3 2 f f f f t f f t f f f f f f f t f 3.
#step 10
#outs 1 1 1 1 3 3 3 3 f f f f t f f f f f f f f f f t t 2.
#This algo reached a legitimate configuration after 12 moves, 10 steps, 4 rounds.
#quit
......@@ -47,7 +47,9 @@ let deco : (Topology.t -> files_spec_t list -> Topology.t) =
let to_dot_string : (t -> string -> string) =
fun g name ->
let attr =
let attrs = List.map (fun (an,av) -> Printf.sprintf "%s=%s" an av) g.Topology.attributes in
let attrs =
List.map (fun (an,av) -> Printf.sprintf "%s=%s" an av) g.Topology.attributes
in
Printf.sprintf "graph [%s]" (String.concat "\n\t" attrs)
in
let node_to_node_string n =
......@@ -55,7 +57,7 @@ let to_dot_string : (t -> string -> string) =
in
let nodes = String.concat "" (List.map node_to_node_string g.Topology.nodes) in
let node_to_link_string n =
let succ = g.succ n.id in
let pred = g.pred n.id in
let link_kind = if g.directed then "->" else "--" in
let links =
List.map
......@@ -63,14 +65,14 @@ let to_dot_string : (t -> string -> string) =
(match w with
| 1 ->
if n.id < neighbour || g.directed then
Printf.sprintf (" %s %s %s") n.id link_kind neighbour
else
Printf.sprintf (" %s %s %s") neighbour link_kind n.id
else
Printf.sprintf (" %s %s %s") n.id link_kind neighbour
| x ->
Printf.sprintf (" %s %s %s [weight=%d]") n.id link_kind neighbour x
Printf.sprintf (" %s %s %s [weight=%d]") neighbour link_kind n.id x
)
)
succ
pred
in
links
in
......
......@@ -3,29 +3,29 @@ open Topology
open Ggcore
open List
type node_succ_t = (string, int * string) Hashtbl.t
type node_pred_t = (string, string) Hashtbl.t
type node_succ_t = (string, string) Hashtbl.t
type node_pred_t = (string, int * string) Hashtbl.t
(* Add symmetric edges when not directed *)
let update_tbl directed succ pred =
if not directed then (
Hashtbl.iter
(fun n1 (_, n2) ->
if not (List.mem (1,n1) (Hashtbl.find_all succ n2)) then
Hashtbl.add succ n2 (1,n1))
(fun n1 n2 ->
if not (List.mem n1 (Hashtbl.find_all succ n2)) then
Hashtbl.add succ n2 n1)
(Hashtbl.copy succ);
Hashtbl.iter
(fun n1 n2 ->
if not (List.mem n1 (Hashtbl.find_all pred n2)) then
Hashtbl.add pred n2 n1)
(fun n1 (_, n2) ->
if not (List.mem (1,n1) (Hashtbl.find_all pred n2)) then